在C#中重新排列的列

时间:2010-05-26 17:06:24

标签: c# winforms datagridview

如何从C#中的datagridview中获取重新排列的列?我需要按顺序显示当前正在显示的所有列。我可以通过设置datagridview.AutoGenerateColumns=false来获取默认列顺序,但即使在我重新排列表格中的列后,我也会得到相同的旧订单。

编辑:基本上我需要的是能够根据显示索引迭代datagridview的所有列

由于

3 个答案:

答案 0 :(得分:3)

使用DataGridView列的DisplayIndex property

DisplayIndex属性:

  

获取或设置的显示顺序   列相对于当前   显示的列。

修改
这很丑陋,我相信人们会指出并大笑,但这可能会让你对一个改进的实现有一个粗略的想法。

创建一个包含三列的DGV并设置其DisplayName属性,如下所示:

    dataGridView1.Columns[0].DisplayIndex = 1;
    dataGridView1.Columns[1].DisplayIndex = 2;
    dataGridView1.Columns[2].DisplayIndex = 0;

添加以下代码以遍历所有列,以DisplayIndex顺序访问DGV中的列:

    for (int index = 0; index < dataGridView1.Columns.Count; index++) {
        foreach (DataGridViewColumn c in dataGridView1.Columns) {
            if (c.DisplayIndex == index) {
                // You've got your next column.
                Console.WriteLine(c.Name);
            }
        }
    }

答案 1 :(得分:0)

你是如何选择的?选择 *?您需要按照所需的顺序指定列。

答案 2 :(得分:0)

您是否在网格的ItemTemplate部分重新安排了订单?您还可以通过GridView的上下文菜单更改顺序,您可以更改SQL语句并确保自动生成关闭