winform中datagridview点击事件
时间: 2023-08-23 17:07:51 浏览: 141
在WinForm中,当点击DataGridView的特定按钮事件时,可以通过判断所点击的列是否为DataGridViewButtonColumn来执行相应的操作。可以使用以下代码来实现这个功能:
```csharp
private void dataGridView2_CellClick(object sender, DataGridViewCellEventArgs e)
{
if (dataGridView2.Columns[e.ColumnIndex is DataGridViewButtonColumn && e.RowIndex >= 0)
{
// 在这里执行点击事件的逻辑
// 比如根据按钮所在行的数据进行相关的操作
}
}
```
另外,在WinForm中绑定DataGridView的数据源可以使用DataTable。可以通过以下代码来实现:
```csharp
DataTable dt = new DataTable("joch");
dt.Columns.Add("A");
dt.Columns.Add("B");
dt.Columns.Add("C");
dt.Rows.Add(1, 1, 1);
dt.Rows.Add(2, 2, 5);
dt.Rows.Add(3, 3, 4);
dataGridView1.DataSource = dt;
```
需要注意的是,在绑定数据源之前,要先设置DataGridView的DataMember属性为空。如果不这样做,可能会导致多次触发DataBindingComplete事件。所以可以按照以下顺序操作:
```csharp
if (dataGridView1.DataSource == null)
{
dataGridView1.DataMember = dt.TableName;
}
dataGridView1.DataSource = dt;
```
这样就可以避免多次触发DataBindingComplete事件。<span class="em">1</span><span class="em">2</span>
#### 引用[.reference_title]
- *1* [如何给WinForm的dataGridView控件的表格中添加按钮并添加点击事件](https://blog.csdn.net/Andrewniu/article/details/90698381)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
- *2* [WinForm中dataGridView的事件DataBindingComplete触发多次原因](https://blog.csdn.net/jochzhu/article/details/79270302)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
阅读全文