2011-12-11 91 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。開玩笑。 –