如何从C#中的datagridview中获取重新排列的列?我需要按顺序显示当前正在显示的所有列。我可以通过设置datagridview.AutoGenerateColumns=false
来获取默认列顺序,但即使在我重新排列表格中的列后,我也会得到相同的旧订单。
编辑:基本上我需要的是能够根据显示索引迭代datagridview的所有列
由于
答案 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语句并确保自动生成关闭