列标题的Datagridview排序- winformc#



我有一个绑定到datagridview的数据表。然而,列的顺序是混乱的。我已经为每个字段设置了一个列标题dataproperty名称。我把它安排在设计师视图中。然而,如果我运行程序列标题不遵循我的安排。= _ =。有人知道怎么解决这个问题吗....

编辑::我试过这种方法。可以吗?

void SortDataGridViewColumns(DataGridView dgv)
{
    var list = from DataGridViewColumn c in dgv.Columns
               orderby c.Index
               select c;
    int i = 0;
    foreach (DataGridViewColumn c in list)
    {
        c.DisplayIndex = i++;
    }
}

***我有这个在这里,但我使用索引而不是Headertext。情况下关闭!LOL

我认为你需要在运行时更改列的顺序。

来自MSDN:

当您使用DataGridView显示来自数据源的数据时,数据源模式中的列有时不会按照您希望显示它们的顺序出现。你可以通过使用DataGridViewColumn类的DisplayIndex属性来改变列的显示顺序。

您可以像这样更改列的顺序:

private void AdjustColumnOrder()
{
    customersDataGridView.Columns["CustomerID"].Visible = false;
    customersDataGridView.Columns["ContactName"].DisplayIndex = 0;
    customersDataGridView.Columns["ContactTitle"].DisplayIndex = 1;
    customersDataGridView.Columns["City"].DisplayIndex = 2;
    customersDataGridView.Columns["Country"].DisplayIndex = 3;
    customersDataGridView.Columns["CompanyName"].DisplayIndex = 4;
}

http://msdn.microsoft.com/en-us/library/wkfe535h.aspx Y0

如果您打算经常使用它,我建议您使用扩展方法来添加语法糖,使其易于阅读和维护。

最新更新