C# TreeView 節點的雙擊事件

來源:互聯網
上載者:User
方法一:(略有缺陷)

在TreeView的整個樹的DOUBLECLICK事件中判斷選中節點,但是這個做法有缺點,就是選中一節點後,雙擊其他的空白地方也是會觸發這個節點的雙擊事件。
方法二:(能夠比較好的解決此類問題)  關鍵步驟:  1、根據滑鼠位置得到當前活動節點。當然這一步得到的仍然可能在意料之外,因為TreeNode右邊的空白位置算作它的地區。       
  2、判斷滑鼠的位置是否真的在節點上。可以引入一個成員變數來記錄滑鼠按下去或者彈起來的位置;也可以動態抓取滑鼠當前的絕對位置,然後使用TreeView控制項的PointToClient方法換算成空間內部的相對位置,來看是否在節點範圍內部。  private   Point   pi;   
        

  private   void   treeView1_MouseDown(object   sender,   System.Windows.Forms.MouseEventArgs   e)   

  {   

  pi=new   Point(e.X,e.Y);   

  }   
    

  private   void   treeView1_DoubleClick(object   sender,   System.EventArgs   e)   

  {   

  TreeNode   node=this.treeView1.GetNodeAt(pi);   

  if(pi.X<node.Bounds.Left   ||   pi.X>node.Bounds.Right)   

  {   

  this.Text=""   ;     //不觸發事件   

  return;   

  }   

  else   

  {   

  this.Text="ggg";     //觸發事件   

  }   

  }   

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.