为什么我会收到MyEntity和FullName Columns的列名未找到的异常?虽然我看到列名显示在UI中。
InitializeComponent();
dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
foreach (DataGridViewRow row in dataGridView1.SelectedRows)
{
int rowIndex = dataGridView1.Rows.IndexOf(row);
myObject = dataGridView1.Rows[rowIndex].Cells["MyEntity"].Value as IEntityObject;
fileName = dataGridView1.Rows[rowIndex].Cells["FullName"].Value.ToString();
}
答案 0 :(得分:12)
因为,令人愤怒的是,datagridview列实际上并没有与DataTable列名相同。如果查看设计器“属性”窗口中的列集合,您将看到它可能被命名为“DataGridViewColumn4”或类似名称。
如果您知道索引,则应使用该索引,或将列重命名为DT列名称。
答案 1 :(得分:1)
包含它并不是很明显,以编程方式为您的datagridview添加一个名称为set的复选框应该如下所示:
DataGridViewCheckBoxColumn col = new DataGridViewCheckBoxColumn();
col.Width = 90;
col.HeaderText = "Sync To Vend?"; //Header cell text
col.Name = "SyncVendBox"; //This is the important part
ProductGrid.Columns.Insert(2, col);
如果你想勾选复选框:
for (int i = 0; i < ProductGrid.Rows.Count; i++)
{
ProductGrid.Rows[i].Cells["SyncVendBox"].Value = true;
}