最近項目中須要用到樹控件TreeView,而且須要當雙擊某節點時,觸發某事件,但因爲每當雙擊節點的時候,該節點都會進行展開/摺疊的轉換,體驗不是很好,因此就想辦法將其摺疊/展開屏蔽掉,只響應雙擊事件。spa
1 // 記錄鼠標(左鍵)點擊次數 2 private int cnt = 0; 3 4 private void TreeViewName_MouseDown(object sender, MouseEventArgs e) 5 { 6 // 統計左鍵點擊次數 7 if (e.Button == MouseButtons.Left) 8 cnt = e.Clicks; 9 } 10 11 private void TreeViewName_BeforeCollapse(object sender, TreeViewCancelEventArgs e) 12 { 13 TreeNode selectedNode = TreeViewName.SelectedNode; 14 15 if (selectedNode == null) 16 return; 17 18 if (cnt > 1) 19 e.Cancel = true; 20 else 21 e.Cancel = false; 22 } 23 24 private void TreeViewName_BeforeExpand(object sender, TreeViewCancelEventArgs e) 25 { 26 TreeNode selectedNode = TreeViewName.SelectedNode; 27 28 if (selectedNode == null) 29 return; 30 31 if (cnt > 1) 32 e.Cancel = true; 33 else 34 e.Cancel = false; 35 }
每次的鼠標(左鍵,也能夠針對右鍵,或是左右健一塊兒)點擊,若是次數大於1,粗略認爲是雙擊,不去響應對應事件,即展開/摺疊code