DataGridViewColumn
对象有一个Name
(仅显示在表单设计器中)和一个HeaderText
(显示在 GUI 中的列顶部)属性。您的示例中的索引器使用列的Name
属性,所以既然您说这不起作用,我假设您真的在尝试使用列的标题。
没有任何内置功能可以满足您的需求,但添加起来很容易。我会使用扩展方法使其易于使用:
public static class DataGridHelper
{
public static object GetCellValueFromColumnHeader(this DataGridViewCellCollection CellCollection, string HeaderText)
{
return CellCollection.Cast<DataGridViewCell>().First(c => c.OwningColumn.HeaderText == HeaderText).Value;
}
}
然后在您的代码中:
foreach (DataGridViewRow row in Rows)
{
if (object.Equals(row.Cells.GetCellValueFromColumnHeader("xxx"), 123))
{
// ...
}
}