c# - 如何按字母顺序对数据网格中的列标题进行排序? C#

标签 c# winforms datagridview

我有一个包含列标题的排序列表,如何重新排列我的 datagridview 以使其与我的排序列表的顺序相同?

我试过下面的代码,但这并不总是有效,有些列没有正确排序。感谢您对此提供的任何帮助。

sortedColumnNames.Sort();

    foreach (DataGridViewColumn col in dataGridView1.Columns)
                    {
                        col.DisplayIndex = sortedColumnNames.IndexOf(col.HeaderText);
                    }

已排序的列名: 雅典 克里特 科孚岛 凯法利尼亚岛 米科诺斯岛 罗兹 圣托里尼 斯基亚索斯 桑特花

最佳答案

我无法判断您的问题是否是 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++;
    }
}

关于c# - 如何按字母顺序对数据网格中的列标题进行排序? C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/348419/

相关文章:

c# - 如何在 C# 中禁用标题的 datagridview 鼠标单击事件

c# - ASP.NET动态UserControl ID生成问题

c# - C# 中的 MongoDB FilterDefinition 和接口(interface)

.net - 如何将用户控件添加到 Visual Studio 2010 中的 Windows 窗体应用程序?

C#获取焦点所在的Windows资源管理器路径

c# - DataGridView合并

c# - 如何在 Powershell 中为实现 IDictionary 和 ICollection 的类的实例设置属性

c# - 如何使用 C# 授予对文件夹和子文件夹中所有文件的读取权限?

c# - 在两种形式上使用和类的实例

c# - 列表到datagridView数据源