在 WinForms 中,DataGridView
是一个非常常用的控件,用于显示和编辑表格数据。DataGridView
提供了许多事件,允许开发者响应用户交互和数据变化。以下是 DataGridView
中一些常见的事件及其说明和使用示例:
常见的 DataGridView 事件
-
CellClick - 当用户单击单元格时触发。
csharp
private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e) { if (e.RowIndex >= 0 && e.ColumnIndex >= 0) { MessageBox.Show($"单击了单元格 ({e.RowIndex}, {e.ColumnIndex})"); } }
-
CellDoubleClick - 当用户双击单元格时触发。
csharp
private void dataGridView1_CellDoubleClick(object sender, DataGridViewCellEventArgs e) { if (e.RowIndex >= 0 && e.ColumnIndex >= 0) { MessageBox.Show($"双击了单元格 ({e.RowIndex}, {e.ColumnIndex})"); } }
-
CellContentClick - 当用户单击单元格内容时触发。
csharp
private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e) { if (e.RowIndex >= 0 && e.ColumnIndex >= 0) { MessageBox.Show($"单击了单元格内容 ({e.RowIndex}, {e.ColumnIndex})"); } }
-
CellContentDoubleClick - 当用户双击单元格内容时触发。
csharp
private void dataGridView1_CellContentDoubleClick(object sender, DataGridViewCellEventArgs e) { if (e.RowIndex >= 0 && e.ColumnIndex >= 0) { MessageBox.Show($"双击了单元格内容 ({e.RowIndex}, {e.ColumnIndex})"); } }
-
CellValueChanged - 当单元格的值改变时触发。
csharp
private void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e) { if (e.RowIndex >= 0 && e.ColumnIndex >= 0) { MessageBox.Show($"单元格 ({e.RowIndex}, {e.ColumnIndex}) 的值已改变"); } }
-
CellValueNeeded - 当需要显示单元格的值时触发(适用于虚拟模式)。
csharp
private void dataGridView1_CellValueNeeded(object sender, DataGridViewCellValueEventArgs e) { // 提供单元格的值 e.Value = $"Value at ({e.RowIndex}, {e.ColumnIndex})"; }
-
CellValuePushed - 当单元格的值被修改时触发(适用于虚拟模式)。
csharp
private void dataGridView1_CellValuePushed(object sender, DataGridViewCellValueEventArgs e) { // 处理单元格值的修改 MessageBox.Show($"单元格 ({e.RowIndex}, {e.ColumnIndex}) 的值被修改为 {e.Value}"); }
-
CellFormatting - 当单元格格式化时触发。
csharp
private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e) { if (e.ColumnIndex == 1 && e.Value != null) { e.CellStyle.BackColor = Color.LightBlue; } }
-
CellParsing - 当单元格值