这是一个简单的问题,但经过大量搜索,我找不到解决方案。我想通过列标记得到ColumnName
DataGridView
。我在每列上都添加了带有列名的标签。
修改
我还在标签中存储了一个十进制值。
这是我的代码:
DataGridViewColumn dgCol = new DataGridViewColumn();
dgCol.Name = "MyCol";
dgCol.Tag = 10;
DataGridView1.Columns.Add(dgCol );
标签的类型为Object
。现在我想设置单元格的值,但我的列标签不是名称,我也不知道列索引。
DataGridView1.Rows[1].Cells[" _**Dont Have ColumnName**_ "].Value = 100;
但我有专栏标签。那么我有没有从列标签中获取列名的方法?
答案 0 :(得分:2)
您可以遍历所有columns
:
DataGridViewColumn getcol;
foreach(DataGridViewColumn c in DataGridView1.Columns)
{
if(c.Tag as String == "10")
{
getcol = c;
}
}
现在您可以使用此getcol
。
DataGridView1.Rows[1].Cells[getcol.Name].Value = 100;
答案 1 :(得分:2)
这是对我以前的答案的改进
您也可以使用 linq ,它更短更整洁。
var col = dataGridView1.Columns.Cast<DataGridViewColumn>().Where(c => c.Tag == "10").Single();
dataGridView1.Rows[1].Cells[col.Name].Value = "100";
答案 2 :(得分:0)
试试这个:
您可以通过以下方式获取列名称
假设我有两列: col1和col2
1。直接使用列对象
dataGridView1.Rows[0].Cells[col1.Name].Value = "100";
2。或直接列索引
dataGridView1.Rows[0].Cells[dataGridView1.Columns[0].Name].Value = "100";
希望这有帮助