通过DataGridView显示标头循环



我一直在查看其他帖子,并在使用此帖子中的代码[通过datagridview列和检查复选框] [1]

弄清楚了

[1]:通过DataGridView列循环,然后检查复选框和其他我提出的代码

string cName;
int i;
foreach (DataGridViewColumn c in Results.Columns)
{
    cName = c.DisplayIndex.ToString();
    i = Int32.Parse(cName);
    MessageBox.Show(c.HeaderText);
}

这不会循环通过显示。因此,我所做的就是打开AllowUserToReorderColumns,当他们移动列时,我想循环遍历显示列,并在新顺序中显示带有显示列的名称的消息框。

您可以说我已经找到了displayIndex伪造,但我不知道如何使用它。

您的代码只需按照列的顺序循环。它不会与列显示的顺序相同。

您需要按显示顺序对列进行排序。您可以使用 DisplayIndex属性的LINQ的OrderBy方法来进行。您还可以选择过滤隐藏的列。

var columnsInDisplayOrder = Results.Columns
    .Cast<DataGridViewColumn>()
    .Where(x => x.Visible)
    .OrderBy(x => x.DisplayIndex);
foreach (DataGridViewColumn c in columnsInDisplayOrder)
{
    MessageBox.Show(c.HeaderText);
}

最新更新