DataGridView从列标记中获取列名

时间:2013-12-24 06:26:37

标签: c# .net datagridview

这是一个简单的问题,但经过大量搜索,我找不到解决方案。我想通过列标记得到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;  

但我有专栏标签。那么我有没有从列标签中获取列名的方法?

3 个答案:

答案 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";

希望这有帮助