所以我在博客o-sphere上看过很多关于这个问题的讨论......但是我不知道这是一个bug,还是只是我不理解的bizzar行为......
假设您有TreeView
CheckBoxes
...
Double-click
上CheckBox
上{p> Nodes
,然后再次点击该框...您会注意到该状态似乎没有正确更改。
这是bug
??我总是谨慎地说我在.NET
...
答案 0 :(得分:3)
复制问题表明这绝对是一个错误*(故意的星号)。因为当您在TreeView中双击未选中的复选框时,请调用以下代码:
For Each node As TreeNode In Me.TreeView1.Nodes
Console.WriteLine("{0}: {1}", node.Name, node.Checked)
Next
您会发现,在视觉上未选中时,节点会认为它仍然处于检查状态。我可以看到发生了一些事情:
我的结论是,不知何故,双击是聚焦复选框,导致第二次鼠标点击不被发送到treenode,但它被发送到复选框,这就是为什么复选框被取消选中,treenode为none -the-明智。
* 这是不应该发生的行为,如何对其进行分类,我将留给微软。
答案 1 :(得分:0)
我在树视图选择中遇到了类似的问题。我管理过Treeview.NodeMouseDoubleClick事件,每个节点都使用鼠标双击运行并执行不同的过程。但是当我双击树视图(而不是节点上)时,代码崩溃了。当我实现treeview时,我解决了这个问题.SelectedNode与Treeview.NodeMouseDoubleClick.TreeNodeMouseClickEventArgs e.Node参数返回的不一样。
因此,如果要在树视图中选择具有鼠标选择的节点,则需要完全单击它。
希望这有帮助。