WinForm中 dataGridView中的按钮绑定单击事件

DataGridView单元格增加按钮,单击事件

public DataGridViewFrm()
{
InitializeComponent();
DataGridViewButtonColumn btn1 = new DataGridViewButtonColumn();
btn1.HeaderText = "修改";
btn1.Text = "修改";
btn1.Name = "edit";
btn1.Width = 60;
btn1.UseColumnTextForButtonValue = true;
this.dgvShow.Columns.Add(btn1);
dgvShow.Columns[3].HeaderText = "姓名";
this.dgvShow.CellFormatting += new DataGridViewCellFormattingEventHandler(dgvShow_CellFormatting);
}
/// <summary>
/// 单元格单击事件,不是CellClick
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void dgvShow_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
if (dgvShow.Columns[e.ColumnIndex].Name == "edit")
{
//可以在此打开新窗口,把参数传递过去
MessageBox.Show(this.dgvShow.Rows[e.RowIndex].Cells[3].Value.ToString());
}
}

在datagridview中单击按钮事件
private void ThylxBtn_CellContentClick(object sender, DataGridViewCellEventArgs e)

{

int CIndex = e.ColumnIndex; //获取当前列的索引

if (CIndex == 3) 是用第0列开始记的,所以这里的3指的是第4列

{

messageBox.show("OK!")

}

}

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* [如何给WinFormdataGridView控件的表格添加按钮并添加点击事件](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* [WinFormdataGridView事件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 ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值