ツリービューの選択に基づいて表示されるWinFormに複数のグループボックスがあります。すべてのグループで1つのボタンのみを使用したいのですが、ツリービューの選択に基づいて一意のメソッドを呼び出す必要があります。これを行うにはどうすればよいですか?
質問する
170 次
1 に答える
1
選択した treeView ノードに応じて何かを行うには、TreeView コントロールの AfterSelect イベントでこれを行うことができます (1 つの TreeView、4 つの GroupBoxes、およびbutton1という名前の 1 つのボタンがあると仮定します)。
private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
{
//Get current selected node
TreeNode treenode = treeView1.SelectedNode;
//Position the button so it will be visible, change according needs
button1.Location = new Point(20, 20);
//I'm making the selection using "Text" property
switch (treenode.Text)
{
case "1":
changeVisible(groupBox1); //Hide all GroupBoxes excep groupBox1
groupBox1.Controls.Add(button1);//Add the button1 to GroupBox1 Controls property
//You can execute a specific ethod for this case here.
//DoSomethingForTreeNode1();
break;
case "2":
changeVisible(groupBox2);
groupBox2.Controls.Add(button1);
break;
case "3":
changeVisible(groupBox3);
groupBox3.Controls.Add(button1);
break;
case "4":
changeVisible(groupBox4);
groupBox4.Controls.Add(button1);
break;
}
}
//The only purpouse of this method is to hide all but the desired GroupBox control
private void changeVisible(GroupBox groupBox)
{
//Loop across all Controls in the current Form
foreach (Control c in this.Controls)
{
if(c.GetType() == typeof(GroupBox))
{
if(c.Equals(groupBox))
{
c.Visible = true;
}
else
{
c.Visible = false;
}
}
}
}
それが役立つことを願って、
于 2013-02-26T19:37:04.303 に答える