2011-12-11 55 views
0

我有一个数据表绑定到datagridview。但是,列的排序是混乱的。我已经为每个字段设置了一个列标题,并放置了dataproperty名称。我把它安排在设计师的视野里。但是,如果我运行程序列标题不遵循我的安排。 = _ =。有谁知道如何解决这个问题....Datagridview列标题排序 - Winform C#

编辑:: 我试过这种方法。没关系吗?

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。 CASE CLOSED! LOL

回答

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; 
} 

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

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

+1

谢谢。这也有帮助。 Scumbag C#lol。开玩笑。 –