自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

利用C#鼠標(biāo)拖動(dòng)TreeView節(jié)點(diǎn)

開發(fā) 后端
我們將介紹如何利用C#鼠標(biāo)拖動(dòng)TreeView節(jié)點(diǎn),這些節(jié)點(diǎn)的訪問,一般都需要進(jìn)行遍歷或其他操作。希望本文能對(duì)大家有所幫助。

我們將談?wù)揅#鼠標(biāo)拖動(dòng)TreeView節(jié)點(diǎn)的問題,一般需要實(shí)現(xiàn)左鍵拖動(dòng),然后就是激發(fā)。C#鼠標(biāo)拖動(dòng)就是根據(jù)鼠標(biāo)坐標(biāo)確定要移動(dòng)到的目標(biāo)節(jié)點(diǎn)。

  1. private void TVdepartment_ItemDrag(object sender, ItemDragEventArgs e)//左鍵拖動(dòng)  
  2.         {  
  3.             if (e.Button == MouseButtons.Left)  
  4.             {  
  5.                 DoDragDrop(e.Item, DragDropEffects.Move);   
  6.             }  
  7.         }  
  8.  
  9.         private void TVdepartment_DragEnter(object sender, DragEventArgs e)  
  10.         {  
  11.             if (e.Data.GetDataPresent("System.Windows.Forms.TreeNode"))  
  12.             {  
  13.                 e.Effect = DragDropEffects.Move;  
  14.             }  
  15.             else 
  16.             {  
  17.                 e.Effect = DragDropEffects.None;  
  18.             }  
  19.         }  
  20.  
  21.     private void TVdepartment_DragDrop(object sender, DragEventArgs e)//拖動(dòng)  
  22.         {    //獲得拖放中的節(jié)點(diǎn)  
  23.             TreeNode moveNode = (TreeNode)e.Data.GetData("System.Windows.Forms.TreeNode");  
  24.             //根據(jù)鼠標(biāo)坐標(biāo)確定要移動(dòng)到的目標(biāo)節(jié)點(diǎn)  
  25.             Point pt;  
  26.             TreeNode targeNode;  
  27.             pt = ((TreeView)(sender)).PointToClient(new Point(e.X, e.Y));  
  28.             targeNode = this.TVdepartment.GetNodeAt(pt);  
  29.             //如果目標(biāo)節(jié)點(diǎn)無子節(jié)點(diǎn)則添加為同級(jí)節(jié)點(diǎn),反之添加到下級(jí)節(jié)點(diǎn)的未端  
  30.             TreeNode NewMoveNode = (TreeNode)moveNode.Clone();  
  31.             if (targeNode.Nodes.Count == 0)  
  32.             {  
  33.                 targeNode.Parent.Nodes.Insert(targeNode.Index, NewMoveNode);  
  34.             }  
  35.             else 
  36.             {  
  37.                 targeNode.Nodes.Insert(targeNode.Nodes.Count, NewMoveNode);  
  38.             }  
  39.             //更新當(dāng)前拖動(dòng)的節(jié)點(diǎn)選擇  
  40.             TVdepartment.SelectedNode = NewMoveNode;  
  41.             //展開目標(biāo)節(jié)點(diǎn),便于顯示拖放效果  
  42.             targeNode.Expand();  
  43.  
  44.             //移除拖放的節(jié)點(diǎn)  
  45.             moveNode.Remove();  
  46.         } 

利用C#鼠標(biāo)拖動(dòng)TreeView節(jié)點(diǎn)就介紹到這里。

【編輯推薦】

  1. C#委托實(shí)例簡(jiǎn)單分析
  2. 一個(gè).NET委托的故事:彼得,老板和宇宙
  3. 解惑答疑:C#委托和事件
  4. 各版本.NET委托的寫法回顧
  5. 換一個(gè)角度看.NET中的理解委托和事件
責(zé)任編輯:彭凡 來源: 博客園
相關(guān)推薦

2009-08-31 15:27:33

C# TreeView

2009-08-31 15:39:11

C#編寫操作TreeV

2009-08-31 15:34:45

常用操作C# TreeView

2009-08-13 10:42:31

C#窗體拖動(dòng)事件

2009-08-28 16:31:21

C# treeview

2009-08-19 16:50:32

Visual C#C#語言特性

2009-08-28 16:03:15

C#程序?qū)崿F(xiàn)鼠標(biāo)移動(dòng)

2009-09-02 18:11:24

C#鼠標(biāo)

2009-09-03 18:19:35

C#鼠標(biāo)右鍵

2009-10-10 14:54:44

treeView1控件

2009-09-02 18:53:28

C#鼠標(biāo)坐標(biāo)

2009-09-03 16:50:35

C#鼠標(biāo)形狀

2009-08-18 11:17:37

C#添加鼠標(biāo)右鍵

2009-09-01 10:35:59

C# WinForm控

2009-06-02 10:10:15

C#

2009-09-02 19:11:42

C#鼠標(biāo)滾輪

2009-09-07 18:08:25

C#鼠標(biāo)指針

2009-09-02 18:34:28

C#鼠標(biāo)事件

2009-08-28 15:52:23

C#利用sharpzi

2009-08-28 16:08:28

C#利用資源文件
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)