zoukankan      html  css  js  c++  java
  • 避免 C# TreeView NodeMouseDoubleClick 双击事件的节点错位的错误行为

    避免 C# TreeView NodeMouseDoubleClick 双击事件的节点错位的错误行为

    在使用WinForm标准的TreeView控件的过程中,添加了如下类似的节点

    parentNode1

    ---childNode1

    ---childNode2

    parentNode2

    ---childNode1

    ---childNode2

    当parentNode2收起的时候,双击parentNode2,节点会自动展开,并且 NodeMouseDoubleClick事件会发生响应,在响应NodeMouseDoubleClick事件的时候,参数TreeNodeMouseClickEventArgs e 可能出现混乱,这主要是因为双击父节点的时候,会默认展开或者收起子节点,在展开或者收起子节点的时候,treeview会自动调整节点在字体中的显示位置,如果子节点较多,位置发生了移动,那么e.Node就不能代表双击的实际节点。比如说在我的程序中,双击parentNode2时,e.Node实际上可能是childNode1或者childNode2,因为位置不一样而出现不同的参数。

    为了解决这个问题,在实际编程中,应当实际避免使用e.Node,转而使用treeViewInfo.SelectedNode来代替双击的节点。这就比较完美的解决了双击事件行为混乱的问题。下面是实际中我所使用的双击事件的代码。

    private void tvwDevicesList_NodeMouseDoubleClick(object sender, TreeNodeMouseClickEventArgs e)
    {
    if (e.Button == MouseButtons.Right)
    {
    return;
    }
    //使用e.Node会导致节点选择错位,所以使用
    TreeNode trNode = tvwDevicesList.SelectedNode;

    }

  • 相关阅读:
    949. Largest Time for Given Digits
    450. Delete Node in a BST
    983. Minimum Cost For Tickets
    16. 3Sum Closest java solutions
    73. Set Matrix Zeroes java solutions
    347. Top K Frequent Elements java solutions
    215. Kth Largest Element in an Array java solutions
    75. Sort Colors java solutions
    38. Count and Say java solutions
    371. Sum of Two Integers java solutions
  • 原文地址:https://www.cnblogs.com/nanqinling/p/12080027.html
Copyright © 2011-2022 走看看