C#winform的DataGridView控件的Butto列如何给值
时间: 2024-12-28 12:34:29 浏览: 8
在Windows Forms (WinForm) 中,DataGridView 控件的按钮列(Button Column)通常用于显示带有可点击按钮的表格行。要在按钮列设置值,你需要在绑定数据源时定义每个单元格的内容,并为按钮添加相应的点击事件处理程序。
以下是一个简单的步骤:
1. **创建按钮列**:
首先,在 DataGridView 的 `Columns` 属性中添加一个新的 `DataGridViewTextBoxColumn` 类型的列作为基础列,然后设置其 `CellTemplate` 为 `Button` 对象,这将把每个单元格变成一个按钮。
```csharp
DataGridViewTextBoxColumn buttonColumn = new DataGridViewTextBoxColumn();
buttonColumn.HeaderText = "Action";
buttonColumn.DefaultCellStyleButtonClick += Button_Click;
dataGridView.Columns.Add(buttonColumn);
```
2. **绑定数据源**:
在绑定数据之前,需要定义数据模型,包含你要展示的文本和按钮动作。例如,假设你有一个 `DataModel` 类:
```csharp
public class DataModel
{
public string Text { get; set; }
public Action ActionToExecute { get; set; }
}
```
3. **填充数据**:
将 `DataModel` 实例添加到 `DataGridView` 的 `DataSource` 或 `Rows` 中,同时设置按钮的文字和单击事件:
```csharp
DataModel[] data = ... // 创建你的数据数组
for (int i = 0; i < data.Length; i++)
{
var item = data[i];
DataGridViewRow row = dataGridView.Rows.Add(item.Text);
DataGridViewButtonCell cell = (DataGridViewButtonCell)row.Cells["Action"];
cell.Value = item.ActionToExecute; // 设置按钮的点击事件委托
cell.Text = item.Text; // 显示文本
}
```
4. **事件处理**:
当按钮被点击时,`DataGridViewButtonCell.DefaultCellStyleButtonClick` 事件会被触发,你可以在这里处理用户的操作:
```csharp
private void Button_Click(object sender, DataGridViewCellEventArgs e)
{
DataGridViewButtonCell buttonCell = (DataGridViewButtonCell)sender;
var action = (Action)buttonCell.Value; // 获取按钮对应的 Action
action(); // 执行指定的动作
}
```
阅读全文