[英]How can I sort the column headers in a datagrid alphabetically? c#
我有一個包含列標題的排序列表,如何重新排列我的datagridview所以它與我的排序列表的順序相同?
我已經嘗試了下面的代碼,但這並不總是有效,有些列沒有正確排序。 感謝您的幫助。
sortedColumnNames.Sort();
foreach (DataGridViewColumn col in dataGridView1.Columns)
{
col.DisplayIndex = sortedColumnNames.IndexOf(col.HeaderText);
}
sortedColumnNames:athens crete corfu kefalonia mykonos rhodes santorini skiathos zante
我不知道你的問題是否SortedColumnNames
沒有正確排序(它不是這樣),或者是否為列分配的順序與列表中顯示的順序不同。
如果它是后者,那么可以想象,因為當你在迭代它時,你正在修改集合中項目的順序。 雖然我沒有在我正在運行的任何測試中看到這種情況。
作為一般規則,我不會弄亂我正在迭代的集合的成員資格或順序。 我用這種方式實現列排序:
void SortDataGridViewColumns(DataGridView dgv)
{
var list = from DataGridViewColumn c in dgv.Columns
orderby c.HeaderText
select c;
int i = 0;
foreach (DataGridViewColumn c in list)
{
c.DisplayIndex = i++;
}
}
似乎應該工作。 我剛剛寫了一個快速應用程序進行測試,它運行良好。 你可以准確地確定它什么時候工作,什么時候不工作? 當你說它們不起作用時,是否總是出現故障的相同列?
你可以這樣做:
它並不理想,但它有效。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.