3

DataGridView有两个看起来相似的事件处理程序:CellDoubleClickCellMouseDoubleClick. 这些有什么区别?

4

3 回答 3

2

CellDoubleClick 和 CellClick 是从鼠标左键触发的事件,以及来自选项卡和空格键等的“点击”。

MouseDoubleClick 和 MouseClick 来自任何按钮的鼠标点击。

也在MSDN 论坛上讨论过。

于 2013-08-21T17:08:24.783 回答
0

CellDoubleClick 事件接收有关鼠标的更多信息。如果事件处理程序需要鼠标位置等信息,请使用 CellMouseDoubleClick 事件。

请参阅:http: //msdn.microsoft.com/de-de/library/system.windows.forms.datagridview.celldoubleclick.aspx

http://msdn.microsoft.com/de-de/library/system.windows.forms.datagridview.cellmousedoubleclick.aspx

CellMouseDoubleClick-Event 接收 Click-Count、Location(Point,X,Y)、MouseButton 等

于 2013-08-21T16:59:28.057 回答
0

tl;dr CellDoubleClick 在双击任何鼠标按钮时触发。CellMouseDoubleClick 仅在双击 LEFT 按钮时触发。

// Fires EVERY time ANY mouse button moves down
private void dataGridView1_MouseDown(object sender, MouseEventArgs e)
{
Console.WriteLine("MouseDown Event: " +  e.Button + " button." );
}


// Fires when the LEFT mouse button is double clicked
private void dataGridView1_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
{
Console.WriteLine(" CellDoubleClick: LEFT Button was double clicked");
}



// Fires when ANY mouse button is double clicked
private void dataGridView1_CellMouseDoubleClick(object sender, DataGridViewCellMouseEventArgs e)
{
Console.WriteLine(" CellMouseDoubleClick Event: SOME Button was double clicked");
}

结果是:

// MouseDown Event: Left button.
// MouseDown Event: Left button.
//  CellDoubleClick: LEFT Button was double clicked
//  CellMouseDoubleClick Event: SOME Button was double clicked
//  
//  
// MouseDown Event: Middle button.
// MouseDown Event: Middle button.
//  CellMouseDoubleClick Event: SOME Button was double clicked
// 
//  
//  MouseDown Event: Right button.
// MouseDown Event: Right button.
//  CellMouseDoubleClick Event: SOME Button was double clicked
于 2016-06-30T21:15:00.417 回答