6月 17

選択されているノードを取得する

TreeViewで選択されているノードを取得するには
SelectedNode プロパティーを利用します。

例では
ボタンを押すと、そのとき選択されているNodeのテキストを表示します。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            // TreeViewがフォーカスを失っても選択状態にしておく
            treeView1.HideSelection = false;

            // NodesコレクションにAdd関数で追加します。
            treeView1.Nodes.Add("ノード1");
            treeView1.Nodes.Add("ノード2");
            treeView1.Nodes.Add("ノード3");

            // Nodeがさらに子Nodeを持つ場合、親NodeのNodesコレクションに追加します。
            TreeNode node = treeView1.Nodes.Add("ノード4");
            node.Nodes.Add("子1");
            node.Nodes.Add("子2");
            node.Nodes.Add("子3");

            // 指定Nodeに子Nodeを追加する例
            treeView1.Nodes[0].Nodes.Add("子1");

            // 複数Nodeを1度にまとめて追加する場合はAddRangeを利用
            TreeNode[] nodes =
            {
                new TreeNode("Range1"),
                new TreeNode("Range2"),
                new TreeNode("Range3")
            };
            treeView1.Nodes[1].Nodes.AddRange(nodes);
        }

        private void button1_Click(object sender, EventArgs e)
        {
            // 選択状態か?
            if (treeView1.SelectedNode.IsSelected)
            {
                // 選択されているNodeのテキストを表示
                MessageBox.Show(treeView1.SelectedNode.Text);
            }
        }
    }
}
6月 17

ノードを展開する、展開状態を調べる

TreeViewのノードを展開する場合は
展開したいNodeのExpand関数をコールします。

Node以下を再帰的にすべて展開したい場合は
ExpandAll関数をコールします。

Nodeが展開済みか否か知りたい場合は
IsExpandedプロパティーを参照します。

// ノードを展開
treeView1.Nodes[0].Expand();

// ノード以下を再帰的にすべて展開
treeView1.Nodes[0].ExpandAll();

// ノードが展開済みか否か
bool bExpanded = treeView1.Nodes[0].IsExpanded;
6月 17

ノードを追加する

TreeViewにNodeを追加する場合は
NodesコレクションへAdd関数で追加します。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            // NodesコレクションにAdd関数で追加します。
            treeView1.Nodes.Add("ノード1");
            treeView1.Nodes.Add("ノード2");
            treeView1.Nodes.Add("ノード3");

            // Nodeがさらに子Nodeを持つ場合、親NodeのNodesコレクションに追加します。
            TreeNode node = treeView1.Nodes.Add("ノード4");
            node.Nodes.Add("子1");
            node.Nodes.Add("子2");
            node.Nodes.Add("子3");

            // 指定Nodeに子Nodeを追加する例
            treeView1.Nodes[0].Nodes.Add("子1");

            // 複数Nodeを1度にまとめて追加する場合はAddRangeを利用
            TreeNode[] nodes =
            {
                new TreeNode("Range1"),
                new TreeNode("Range2"),
                new TreeNode("Range3")
            };
            treeView1.Nodes[1].Nodes.AddRange(nodes);
        }
    }
}

treeview_add

6月 17

トラックバー(TrackBar)の使い方

TrackBarの使い方の例です。
FormにTrackBarとLabelを配置し
TrackBarがスライドされると値をラベルに表示します。

trackbar

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            // 最小値、最大値を設定
            trackBar1.Minimum = 0;
            trackBar1.Maximum = 100;

            // 初期値を設定
            trackBar1.Value = 0;

            // 描画される目盛りの刻みを設定
            trackBar1.TickFrequency = 10;

            // スライダーをキーボードやマウス、
            // PageUp,Downキーで動かした場合の移動量設定
            trackBar1.SmallChange = 1;
            trackBar1.LargeChange = 10;

            // 値が変更された際のイベントハンドらーを追加
            trackBar1.ValueChanged += new EventHandler(trackBar1_ValueChanged);
        }

        void trackBar1_ValueChanged(object sender, EventArgs e)
        {
            // TrackBarの値が変更されたらラベルに表示
            label1.Text = trackBar1.Value.ToString();
        }
    }
}
6月 17

コントロールにツールチップ(小さなヘルプ)を設定する

コントロールにマウスカーソルを近づけた時に
小さなヘルプ(ツールチップ)を表示させたい場合は
ToolTipコントロールを使います。

FormにToolTipコントロールを貼り付けて
次のコードを参考に各コントロールにツールチップを設定してください。

なお、ここではFormのLoad時にコードでツールチップを設定していますが
デザイン時に各コントロールのプロパティーに表示される
toolTip1のToolTipにテキストを設定することが多いと思います。

tooltip

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            toolTip1.SetToolTip(textBox1, "名前を入力してください");
            toolTip1.SetToolTip(textBox2, "年齢を入力してください");
        }
    }
}
6月 17

ツールバー(ToolStrip)の使い方

ツールバー(ToolStrip)を使うには
ToolStripコントロールをFormにドロップして配置します。

toolbar

これだけで、Form上でツールバーが表示されます。
上の画像でもわかるように▼ボタンをクリックすると
ツールバーに追加可能なコントロールの一覧が表示されます。

ここでは簡単なButtonコントロールを選んでみます。
ButtonのアイコンはButtonのImageプロパティーで適当な画像ファイルを指定します。

toolbar_open

Buttonをクリックされたら
処理を行うサンプルコードは次のようになります。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void toolStripButton1_Click(object sender, EventArgs e)
        {
            // ここにOpenFileDialogを使ってファイルを開く処理を記述します
            // 詳しくは別節OpenFileDialogを参照ください
        }
    }
}
6月 17

配置変更(中央、左寄せ、右寄せ)

TextAlignプロパティに配置の列挙体を設定します。
テキストボックスの中のテキストの
横方向の配置が変更されます。

// 中央
textBox1.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;

// 左寄せ
textBox1.TextAlign = System.Windows.Forms.HorizontalAlignment.Left;

// 右寄せ
textBox1.TextAlign = System.Windows.Forms.HorizontalAlignment.Right;
6月 17

複数行表示/編集を可能にする

Multilineプロパティーにtrueを設定します。

これだけで複数行の表示/編集が可能になりますが
デフォルトでは1行しか表示されませんので
デザイン時(実行時でもいいですが)
テキストボックスの縦サイズを大きくしてください。

デザイン時にテキストボックスの縦サイズを大きく変更したい場合は
まず最初にMultilineプロパティーをtrueに設定しなければ
テキストボックスの縦サイズを変更できませんので注意してください。

textBox1.Multiline = true;
6月 17

スクロールバーを表示/非表示する

テキストボックスが複数行の場合
(複数行にする方法については別節参照のこと)
スクロールバーを表示したい場合は
ScrollBarsプロパティーに
System.Windows.Forms.ScrollBars列挙体の値を設定します。

【補足】
	横スクロールバーを表示させるためには
	文字列が行末で折り返されないようにする必要があります。
	
	WordWrapプロパティーにfalseを設定してください。
	そうしなければ、文字列が行末で折り返されて表示されるため
	横スクロールバーは現れません。
// スクロールバーを付ける(縦/横両方)※補足参照のこと
textBox1.WordWrap = false;
textBox1.ScrollBars = System.Windows.Forms.ScrollBars.Both;

// スクロールバーを付ける(縦両方のみ)
textBox1.ScrollBars = System.Windows.Forms.ScrollBars.Vertical;

// スクロールバーを付ける(横両方のみ)※補足参照のこと
textBox1.WordWrap = false;
textBox1.ScrollBars = System.Windows.Forms.ScrollBars.Horizontal;

// スクロールバーを無くす
textBox1.ScrollBars = System.Windows.Forms.ScrollBars.None;