通过引用列名查找列索引?

4

如何通过ColumnNameDataGridView中获取ColumnColumnIndex

下面是伪代码:

ColumnIndex = ColumnName("SampleName"); 

你的伪代码不符合你的解释,请编辑你的帖子以使其更加清晰。 - Rafalon
3个回答

6

您可以使用 IndexOf。像这样:

var dataGridViewColumn = dataGridView1.Columns[ColumnName];
if (dataGridViewColumn != null)
{
    int index = dataGridView1.Columns.IndexOf(dataGridViewColumn);
}

或者使用IndexNull-conditional运算符(?.)进行操作,如下所示:

var index = dataGridView1.Columns[ColumnName]?.Index;

4
最简单的方法是:
myData.Columns.IndexOf(/*DataGridViewColumn*/)
myData.Columns[/*ColumnName*/].Index

或者:

private void dataGridView_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
    int ColumnIndex= dataGridView.CurrentCell.ColumnIndex;       
}

这似乎回答了伪代码部分,但我并没有按照原帖作者的解释理解。对我来说,他想要在知道列名时获取索引。 - Rafalon
1
他想知道“列索引=列名称”,这就是我回答@Rafalon先生的原因。 - ArunPratap
1
是我自己的问题还是你的回答和评论不一致?OP想要获取索引,而你却获取了名称,我有什么遗漏吗?(我只会写 int columnIndex = e.ColumnIndex;)无论如何,你的解决方案只在用户单击单元格时有效,在问题中没有提到这一点。 - Rafalon

1
获取列的索引
myDGV.Columns.IndexOf(myDGV.Columns["SampleColumn"];

更简单地说,就像你所说的那样。
myDGV.Columns["SampleColumn"].Index;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接