C#treeView单击事件选中节点
privatevoidForm1_Load(objectsender,EventArgse){TreeNodenewNode12=treeView1.Nodes.Add(...
private void Form1_Load(object sender, EventArgs e)
{
TreeNode newNode12 = treeView1.Nodes.Add("大家好");//一级节点
newNode12.Nodes.Add("你好啊1");
newNode12.Nodes.Add("你好啊2");
newNode12.Nodes.Add("你好啊3");
}
private void treeView1_Click(object sender, EventArgs e)
{
MessageBox.Show(treeView1.SelectedNode.Text);
}
弹出的选项和选择的选项不符合。。怎么解决 展开
{
TreeNode newNode12 = treeView1.Nodes.Add("大家好");//一级节点
newNode12.Nodes.Add("你好啊1");
newNode12.Nodes.Add("你好啊2");
newNode12.Nodes.Add("你好啊3");
}
private void treeView1_Click(object sender, EventArgs e)
{
MessageBox.Show(treeView1.SelectedNode.Text);
}
弹出的选项和选择的选项不符合。。怎么解决 展开
10个回答
展开全部
那是因为你每次在触发Click的时候Treeview选择的节点还是上次选中的节点
如果你对同一节点点击两次以上就会显示正确的节点名称了!
当然还有其他的解决方法:
private void Form1_Load(object sender, EventArgs e)
{
treeView1.Nodes.Add(new TreeNode("父节点"));
TreeNode fnode = treeView1.Nodes[0];
fnode.Nodes.Add("子节点1");
fnode.Nodes.Add("子节点2");
fnode.Nodes.Add("子节点3");
}
private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
{
if (treeView1.SelectedNode != null)
{
MessageBox.Show(treeView1.SelectedNode.Text);
}
}
^_^!
如果你对同一节点点击两次以上就会显示正确的节点名称了!
当然还有其他的解决方法:
private void Form1_Load(object sender, EventArgs e)
{
treeView1.Nodes.Add(new TreeNode("父节点"));
TreeNode fnode = treeView1.Nodes[0];
fnode.Nodes.Add("子节点1");
fnode.Nodes.Add("子节点2");
fnode.Nodes.Add("子节点3");
}
private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
{
if (treeView1.SelectedNode != null)
{
MessageBox.Show(treeView1.SelectedNode.Text);
}
}
^_^!
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个问题我也遇到过,原因是SelectedNode并不是你刚点上去的那个节点,而是之前选中的那一个。解决方法是在MouseDown事件里面写如下代码:
private void treeView1_MouseDown(object sender, MouseEventArgs e)
{
if ((sender as TreeView) != null)
{
treeView1.SelectedNode = treeView1.GetNodeAt(e.X, e.Y);
}
}
MouseDown事件发生在Click事件之前,在这个时候就把SelectedNode转变成你鼠标点的那个节点就没问题了。
这样一定可以解决,解决不了是不可能的
private void treeView1_MouseDown(object sender, MouseEventArgs e)
{
if ((sender as TreeView) != null)
{
treeView1.SelectedNode = treeView1.GetNodeAt(e.X, e.Y);
}
}
MouseDown事件发生在Click事件之前,在这个时候就把SelectedNode转变成你鼠标点的那个节点就没问题了。
这样一定可以解决,解决不了是不可能的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
private void treeView1_AfterCheck(object sender, TreeViewEventArgs e)
{
TreeNode a = e.Node;
string nodename =a.Text;
}
添加复选框和AfterCheck事件,每当发生点击选中事件,就可以获取选中的节点e.node;这样就可以对所选中的节点进行任意处理;如获取节点的TEXT内容;
我可以帮助你,你先设置我最佳答案后,我百度Hii教你。你的串号我已经记下,采纳后我会帮你制作
{
TreeNode a = e.Node;
string nodename =a.Text;
}
添加复选框和AfterCheck事件,每当发生点击选中事件,就可以获取选中的节点e.node;这样就可以对所选中的节点进行任意处理;如获取节点的TEXT内容;
我可以帮助你,你先设置我最佳答案后,我百度Hii教你。你的串号我已经记下,采纳后我会帮你制作
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在treeview的SelectedNodeChanged事件里面写,可以直接获取到
TreeNode treeNode = TreeView1.SelectedNode;
string va = treeNode.Value;这样就ok了
TreeNode treeNode = TreeView1.SelectedNode;
string va = treeNode.Value;这样就ok了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询