C# Winforms:使用列名向 unbound(!) datagridview 添加新行

问题描述

我有一个自定义 DGV (dgvPaths),前两列有 2 个按钮:

        DataGridViewButtonColumn btnColRemove = new DataGridViewButtonColumn();
        btnColRemove.Name = "Remove";
        btnColRemove.HeaderText = "Remove";
        dgvPaths.Columns.Add(btnColRemove);
        dgvPaths.Columns["Remove"].displayIndex = 0;

        DataGridViewButtonColumn btnColbrowse = new DataGridViewButtonColumn();
        btnColbrowse.Name = "browse";
        btnColbrowse.HeaderText = "browse";
        dgvPaths.Columns.Add(btnColbrowse);
        dgvPaths.Columns["browse"].displayIndex = 1;

        DataGridViewTextBoxColumn txtColPath = new DataGridViewTextBoxColumn();
        txtColPath.Name = "Path";
        txtColPath.HeaderText = "Path";
        dgvPaths.Columns.Add(txtColPath);
        dgvPaths.Columns["Path"].displayIndex = 2;

现在我想使用 columnNames 添加一个新行并尝试这样做:

        DataGridViewRow row = (DataGridViewRow)dgvPaths.Rows[0].Clone();
        row.Cells["Path"].Value = "Path xy";
        dgvPaths.Rows.Add(row);

这会导致错误“未找到列路径”。

我怎样才能做到这一点?

解决方法

使用以下方法解决了:

row.Cells[dgvPaths.Columns["Path"].Index].Value = "Path xy";

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...