我有一个树形视图与多个节点(例如a,b,c)。如果我点击“b”,我希望单词“你好”出现在文本框中。Treeview C#点击一个节点上出现的文本
我有这样的方法:
private void treeList_SelectedNodeChanged(object sender, System.EventArgs e)
{
this.layoutControlItem1.Text="hello";
}
问候文本出现,尽管我不点击的节点上。我做对了吗?
我有一个树形视图与多个节点(例如a,b,c)。如果我点击“b”,我希望单词“你好”出现在文本框中。Treeview C#点击一个节点上出现的文本
我有这样的方法:
private void treeList_SelectedNodeChanged(object sender, System.EventArgs e)
{
this.layoutControlItem1.Text="hello";
}
问候文本出现,尽管我不点击的节点上。我做对了吗?
最好的活动是使用NodeMouseClick
。
private void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
{
this.layoutControlItem1.Text = e.Node.Tag.ToString();
}
得到不同的按摩每个节点的最简单方法是将它们存储在节点的标签:
someNode.Tag = "Some Message";
注意,SelectionChanged
会往往比你希望它火到,包括每时间选择被清除..
如果您需要包括键盘选择,你应该包括在你的代码treeView1.SelectedNode != null
检查..
用这个,你不能用键盘改变它。 –
这是正确的,但不是在问题。 – TaW
你们只是人们不会以失败告终,他们不想 ,你用一个包含的支票就可以了,但是你也必须处理SelectedNodeChanged事件 –
您第一次加载您的表单时,SelectedNodeChanged
事件将因您分配Instanciate()
中的值或您自己的代码而被触发。
我建议你使用全局变量,如果形式是由Load
事件加载到存储:
private bool isLoad = false;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
isLoad = true;
}
private void treeList_SelectedNodeChanged(object sender, System.EventArgs e)
{
if(isLoad)
{
this.layoutControlItem1.Text="hello";
}
}
把一个断点,看看当它被调用 –
这可以通过调试简单地加以解决。 –