C# datagridview 插入列
时间: 2025-01-04 18:33:09 浏览: 8
### C# 中向 DataGridView 插入列的方法
在 C# 的 Windows Forms 应用程序中,可以通过编程方式向 `DataGridView` 控件插入新的列。以下是具体的操作方法:
#### 创建并配置新列对象
创建一个新的 `DataGridViewTextBoxColumn` 对象用于表示要添加的新列,并设置其属性。
```csharp
// 定义两个新的文本列
DataGridViewTextBoxColumn columnMileage = new DataGridViewTextBoxColumn();
columnMileage.HeaderText = "里程值/m";
columnMileage.Name = "mileage";
DataGridViewTextBoxColumn columnDeviation = new DataGridViewTextBoxColumn();
columnDeviation.HeaderText = "偏差值/mm";
columnDeviation.Name = "deviation";
```
#### 将新列添加至 DataGridView 列集合
利用 `Columns.AddRange()` 方法一次性将多个列加入到 `DataGridView` 的列集中;也可以单独调用 `Add()` 方法逐个添加单个列。
```csharp
// 添加这两列到 dataGridView2 上
dataGridView2.Columns.AddRange(new DataGridViewColumn[] { columnMileage, columnDeviation });
```
如果希望指定位置插入而不是追加到最后,则可采用如下形式:
```csharp
// 在索引为0的位置插入一列
dataGridView2.Columns.Insert(0, columnMileage);
```
对于已有数据的情况,在完成上述操作之后还需要更新现有行的数据以填充这些新增的列[^1]。
为了确保新添加的列能够显示正确的初始值,可以在原有基础上继续执行以下代码片段来遍历每一行并将相应的字符串数组元素赋给对应的新字段。
```csharp
String[] strArr1 = {"x", "c", "v"}; // 获取待存的数据
String[] strArr2 = {"a", "s", "d"};
for (int i = 0; i < dataGridView2.Rows.Count; ++i) {
if (!dataGridView2.Rows[i].IsNewRow){
dataGridView2.Rows[i].Cells["mileage"].Value = strArr1[i];
dataGridView2.Rows[i].Cells["deviation"].Value = strArr2[i];
}
}
```
最后重新绑定数据源使更改生效。
```csharp
// 更新数据源
dataGridView2.DataSource = dt;
dataGridView2.ClearSelection();
```
阅读全文