循环通过DataGridView显示标题

时间:2015-05-05 11:46:03

标签: c# winforms datagridview

我一直在查看其他帖子并且在使用此帖子中的代码时已经找到了[循环访问datagridview列并勾选复选框] [1]

[1]:loop through datagridview column and check checkbox和其他人或我提出的代码

string cName;
int i;

foreach (DataGridViewColumn c in Results.Columns)
{
    cName = c.DisplayIndex.ToString();
    i = Int32.Parse(cName);

    MessageBox.Show(c.HeaderText);
}

这不会循环显示。所以我所做的就是打开AllowUserToReorderColumns,当他们移动一列时,我想循环显示列并显示一个消息框,其中包含新订单中显示列的名称。

正如你所知,我已找到displayIndex预言但我无法弄清楚如何使用它。

1 个答案:

答案 0 :(得分:2)

您的代码只是按照添加的顺序遍历列。它与列的显示顺序不同。

您需要按显示顺序对列进行排序。您可以使用Linq的OrderBy方法和DisplayIndex属性来执行此操作。您也可以选择过滤隐藏的列。

var columnsInDisplayOrder = Results.Columns
    .Cast<DataGridViewColumn>()
    .Where(x => x.Visible)
    .OrderBy(x => x.DisplayIndex);

foreach (DataGridViewColumn c in columnsInDisplayOrder)
{
    MessageBox.Show(c.HeaderText);
}