Drag DataGridView Data To TreeView

1. Define below events, and setting TreeView property AllowDrop = True

 

// private void dataGridView1_CellMouseDown(object sender, DataGridViewCellMouseEventArgs e)
// {
//     ataGridView1.DoDragDrop(e.RowIndex, DragDropEffects.Copy);
// }

private   void  dataGridView1_MouseDown( object  sender, MouseEventArgs e)
{
    dataGridView1.DoDragDrop(dataGridView1.SelectedRows, DragDropEffects.Copy);
}

private   void  treeView1_DragDrop( object  sender, DragEventArgs e)
{
    
if  (e.Data.GetDataPresent( typeof (DataGridViewSelectedRowCollection)))
    {
        DataGridViewSelectedRowCollection selected 
=  (DataGridViewSelectedRowCollection)e.Data.GetData( typeof (DataGridViewSelectedRowCollection));

        
foreach  (DataGridViewRow row  in  selected)
        {
            
string  key  =  row.Cells[ " Index " ].Value.ToString();

            
if  (m_treeTable.Rows.Contains(key)  ==   false )
            {
                DataRow dr 
=  m_treeTable.NewRow();
                dr[
" Index " =  row.Cells[ " Index " ].Value.ToString();
                dr[
" Name " =  row.Cells[ " Name " ].Value.ToString();
                dr[
" Father " =  row.Cells[ " Father " ].Value.ToString();
                m_treeTable.Rows.Add(dr);
                AddTreeNode(dr);
            }
        }
    }
    
this .treeView1.SelectedNode.BackColor  =  Color.White;
}

private   void  treeView1_DragEnter( object  sender, DragEventArgs e)
{
    
if  (e.Data.GetDataPresent( typeof (DataGridViewSelectedRowCollection)))
    {
        e.Effect 
=  DragDropEffects.Copy;
    }
    
else
    {
        e.Effect 
=  DragDropEffects.None;
    }
}

private   void  treeView1_DragOver( object  sender, DragEventArgs e)
{
    TreeNode node 
=  treeView1.SelectedNode;
    
if  (node  !=   null )
    {
         node.BackColor 
=  Color.White;
     }
     Point targetPoint 
=  treeView1.PointToClient( new  Point(e.X, e.Y));
     node 
=   this .treeView1.GetNodeAt(targetPoint);
     
// TreeNode node = this.treeView1.GetNodeAt(e.X, e.Y);
     if  (node  !=   null )
     {
         treeView1.SelectedNode 
=  node;
         treeView1.SelectedNode.BackColor 
=  Color.LightBlue;
     }
}

 

转载于:https://www.cnblogs.com/huadust/archive/2009/07/17/1525615.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值