DataGridview列标题的排序 - Winform C#

rj *_*era 0 c# database datagridview winforms

我有一个绑定到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++;
    }
}
Run Code Online (Sandbox Code Playgroud)

***我在这里有这个,但我用的是Index而不是Headertext.案例已关闭!大声笑

Jon*_*han 7

我想你需要在运行时更改列顺序.

来自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;
}
Run Code Online (Sandbox Code Playgroud)

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

如果您经常使用它,我建议您使用延伸方法添加辛辣糖并使其易于阅读和维护.