datagridview绑定数据源,每行添加按钮,用代码实现
时间: 2023-06-25 13:02:51 浏览: 352
首先,在 `DataGridView` 控件中添加一个列,可以命名为 `操作`,然后设置该列的 `CellTemplate` 为 `DataGridViewButtonCell`,即可添加按钮到每一行。
接下来,需要在代码中绑定数据源并为每个按钮添加点击事件。可以在 `DataGridView` 的 `DataBindingComplete` 事件中添加以下代码:
```csharp
private void dataGridView1_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e)
{
// 遍历每一行,为操作列中的按钮添加事件处理程序
foreach (DataGridViewRow row in dataGridView1.Rows)
{
var buttonCell = row.Cells["操作"] as DataGridViewButtonCell;
if (buttonCell != null)
{
// 添加按钮点击事件
buttonCell.Value = "点击";
buttonCell.UseColumnTextForButtonValue = true;
buttonCell.FlatStyle = FlatStyle.Flat;
buttonCell.Style.BackColor = Color.LightGreen;
buttonCell.Style.ForeColor = Color.Black;
buttonCell.Style.SelectionBackColor = Color.Green;
buttonCell.Style.SelectionForeColor = Color.White;
buttonCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
buttonCell.Style.Font = new Font("微软雅黑", 9, FontStyle.Regular);
buttonCell.ToolTipText = "点击该按钮";
buttonCell.Tag = row.DataBoundItem; // 将当前行绑定的数据赋值给按钮的Tag属性
buttonCell.Click += new DataGridViewCellEventHandler(buttonCell_Click);
}
}
}
// 按钮点击事件处理程序
private void buttonCell_Click(object sender, DataGridViewCellEventArgs e)
{
var buttonCell = dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex] as DataGridViewButtonCell;
if (buttonCell != null)
{
// 获取按钮所在行绑定的数据
var rowData = buttonCell.Tag as YourDataType;
// 处理按钮点击事件
// ...
}
}
```
其中,`YourDataType` 为你绑定的数据类型,需要根据实际情况进行替换。在按钮点击事件处理程序中,可以根据获取到的数据进行相应操作。
阅读全文