DataGridView.CellMouseClick 事件

定义

在用户用鼠标单击单元格中的任何位置时发生。

C#
public event System.Windows.Forms.DataGridViewCellMouseEventHandler CellMouseClick;
C#
public event System.Windows.Forms.DataGridViewCellMouseEventHandler? CellMouseClick;

事件类型

示例

下面的代码示例演示了此成员的用法。 在此示例中,事件处理程序报告事件的发生情况 CellMouseClick 。 此报表可帮助你了解事件发生的时间,并可以帮助你进行调试。 若要报告多个事件或频繁发生的事件,请考虑将 MessageBox.Show 替换为 Console.WriteLine 或将消息追加到多行 TextBox

若要运行示例代码,请将其粘贴到包含名为 DataGridView1的 类型的DataGridView实例的项目中。 然后,确保事件处理程序与 CellMouseClick 事件相关联。

C#
private void DataGridView1_CellMouseClick(Object sender, DataGridViewCellMouseEventArgs e) {

System.Text.StringBuilder messageBoxCS = new System.Text.StringBuilder();
messageBoxCS.AppendFormat("{0} = {1}", "ColumnIndex", e.ColumnIndex );
messageBoxCS.AppendLine();
messageBoxCS.AppendFormat("{0} = {1}", "RowIndex", e.RowIndex );
messageBoxCS.AppendLine();
messageBoxCS.AppendFormat("{0} = {1}", "Button", e.Button );
messageBoxCS.AppendLine();
messageBoxCS.AppendFormat("{0} = {1}", "Clicks", e.Clicks );
messageBoxCS.AppendLine();
messageBoxCS.AppendFormat("{0} = {1}", "X", e.X );
messageBoxCS.AppendLine();
messageBoxCS.AppendFormat("{0} = {1}", "Y", e.Y );
messageBoxCS.AppendLine();
messageBoxCS.AppendFormat("{0} = {1}", "Delta", e.Delta );
messageBoxCS.AppendLine();
messageBoxCS.AppendFormat("{0} = {1}", "Location", e.Location );
messageBoxCS.AppendLine();
MessageBox.Show(messageBoxCS.ToString(), "CellMouseClick Event" );
}

注解

当用户使用任何鼠标按钮单击时,会发生此事件。 MouseEventArgs.Button使用 属性确定单击了哪个按钮。

若要检测单元格内容(如单元格中的按钮或链接)的单击情况,请使用 CellContentClick 事件。

此事件的处理程序接收鼠标指针位置的列索引和行索引。

对于 中的DataGridViewCheckBoxCell单击,此事件发生在检查框更改值之前,因此,如果不希望基于当前值计算预期值,通常将改为处理事件CellValueChanged。 由于该事件仅在提交用户指定的值时发生(通常在焦点离开单元格时发生),因此还必须处理该 CurrentCellDirtyStateChanged 事件。 在该处理程序中,如果当前单元格是检查框单元格,请调用 CommitEdit 方法并传入Commit值。

有关如何处理事件的详细信息,请参阅 处理和引发事件

适用于

产品 版本
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9, 10

另请参阅