C# 拖拽后如何用鼠标选择单元格?
我的表单中有两个DataGridView。用户可以选择多个单元格并将其拖动到treeview节点 以下是鼠标按下事件的代码:C# 拖拽后如何用鼠标选择单元格?,c#,.net,events,datagridview,C#,.net,Events,Datagridview,我的表单中有两个DataGridView。用户可以选择多个单元格并将其拖动到treeview节点 以下是鼠标按下事件的代码: private void datagridviews_MouseDown(object sender, MouseEventArgs e) { if (e.Button == MouseButtons.Right) { Console.WriteLine("mouse down right");
private void datagridviews_MouseDown(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Right)
{ Console.WriteLine("mouse down right");
statuslabel.Text = "";
DataGridView.HitTestInfo hit = ((DataGridView)sender).HitTest(e.X, e.Y);
if (hit.Type == DataGridViewHitTestType.Cell)
{
var clickedCell = ((DataGridView)sender).Rows[hit.RowIndex].Cells[hit.ColumnIndex];
clickedCell.Selected = true;
}
List<string> cellcontents = new List<string>();
foreach (DataGridViewCell c in ((DataGridView)sender).SelectedCells)
{
cellcontents.Add((string)c.Value);
}
if (cellcontents.Count>0)
((DataGridView)sender).DoDragDrop(cellcontents, DragDropEffects.Copy);
}
else
Console.WriteLine("mouse down left");
}
private void datagridviews\u MouseDown(对象发送方,MouseEventArgs e)
{
if(e.Button==MouseButtons.Right)
{Console.WriteLine(“鼠标右下”);
statuslabel.Text=“”;
DataGridView.HitTestInfo hit=((DataGridView)sender.HitTest(e.X,e.Y);
if(hit.Type==DataGridViewHitTestType.Cell)
{
var clickedCell=((DataGridView)sender.Rows[hit.RowIndex].Cells[hit.ColumnIndex];
clickedCell.Selected=true;
}
List cellcontents=新列表();
foreach(DataGridView中的单元格c((DataGridView)发件人)。SelectedCells)
{
cellcontents.Add((字符串)c.Value);
}
如果(cellcontents.Count>0)
((DataGridView)sender.DoDragDrop(cellcontents,DragDropEffects.Copy);
}
其他的
控制台。WriteLine(“鼠标左下”);
}
拖放可以工作,但当我在完成拖放后单击origin datagridview中的单元格时,我必须单击两次才能选择单元格
这是事件的控制台日志-右键单击是拖放操作,然后正常的鼠标左键单击会触发鼠标按下事件,但不会触发单元格单击事件,即使我正在单击单元格
鼠标右键按下鼠标左下
鼠标左下
单击单元格
为什么鼠标左下时,单元格单击事件第一次未触发