b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

datagridview拖拽_datagridview和textbox_datagridview选中一行

电脑杂谈  发布时间:2017-05-30 14:03:44  来源:网络整理
datagridview拖拽

今天工作中遇到一个问题,需要将一个DataGridView中的某一行拖拽到另一个DataGridView中,在网上搜了一遍,大多是从DataGridView拖拽到TextBox等控件,没有拖拽到

DataGridView中的。datagridview拖拽拖拽到TextBox很容易,但拖拽到DataGridView就有一个问题:如何决定拖拽到DataGridView中的哪一个Cell?

为此研究了两个小时,终于找到了答案。

例如要实现从gridSource到gridTarget的拖拽,需要一个设置和三个事件:

1、设置gridTarget的属性AllowDrop为True

2、实现gridSource的MouseDown事件,在这里进行要拖拽的Cell内容的保存,保存到剪贴板。

3、实现gridTarget的DragDrop和DragEnter事件,DragDrop事件中的一个难点就是决定拖拽到哪一个Cell

代码如下:

gridSource的MouseDown事件:

gridTarget的DragDrop事件:

Code

privatevoidgridTarget_DragDrop(objectsender,DragEventArgse)

{

//得到要拖拽到的位置

Pointp=this.gridTarget.PointToClient(newPoint(e.X,e.Y));

DataGridView.HitTestInfohit=this.gridTarget.HitTest(p.X,p.Y);

if(hit.Type==DataGridViewHitTestType.Cell)

{

DataGridViewCellclickedCell=this.gridTarget.Rows[hit.RowIndex].Cells[hit.ColumnIndex];

clickedCell.Value=(System.String)e.Data.GetData(typeof(System.String));

//如果只想允许拖拽到某一个特定列,比如TargetFieldExpression,则先要判断列是否为TargetFieldExpression,如下:

//if(0==string.Compare(clickedCell.OwningColumn.Name,"TargetFieldExpression"))

//{

//clickedCell.Value=(System.String)e.Data.GetData(typeof(System.String));

//}

}

}

gridTarget的DragEnter事件:


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/tongxinshuyu/article-50116-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      热点图片
      拼命载入中...