DataGridViewButtonColumn buttonColumn = new DataGridViewButtonColumn,winform搜索时添加了一列操作列,但是每点击一次搜索,datagrid都会增加一列,怎么修改代码,每次点击自动去掉上次查询的操作列?
时间: 2024-09-20 12:05:21 浏览: 24
在Windows Form中,当你需要在DataGridView中动态添加和移除操作列,并且每次搜索后清空之前添加的操作列,你需要在处理搜索事件的地方对`DataGridView`的列进行管理和维护。这里提供一种可能的做法:
```csharp
// 定义一个集合来存储操作列
private List<DataGridViewColumn> operationColumns = new List<DataGridViewColumn>();
public void SearchButtonClick(object sender, EventArgs e)
{
// 搜索前的准备
dataGridView.Rows.Clear(); // 清空所有行
// 创建一个新的操作列
DataGridViewButtonColumn buttonColumn = new DataGridViewButtonColumn();
dataGridView.Columns.Add(buttonColumn); // 添加到当前列集合
operationColumns.Add(buttonColumn);
// 执行搜索
// 这里假设你有一个名为SearchMethod的方法
SearchMethod();
// 搜索后的清理
foreach (DataGridViewColumn column in operationColumns)
{
if (!dataGridView.Columns.Contains(column)) // 如果该列不在当前列集合中
dataGridView.Columns.Remove(column); // 移除它
}
// 重置操作列列表,避免下次搜索时再添加
operationColumns.Clear();
}
```
这样,在每次`SearchButtonClick`触发后,新添加的操作列会在搜索后立即从`DataGridView`中移除。只需保持`operationColumns`列表用于跟踪已添加的列即可。
阅读全文