首页 > 其他分享 >关于DataGridView设置DispalyIndex后显示顺序不正确问题

关于DataGridView设置DispalyIndex后显示顺序不正确问题

时间:2022-09-22 11:23:24浏览次数:46  
标签:顺序 DataColumn DataGridView DispalyIndex dataGridView1 new DisplayIndex Columns

关于DataGridView设置DispalyIndex后显示顺序不正确问题

编辑器vs2005

测试程序:
winform程序界面上已经存在一个DataGridView控件dataGridView1

public Form1()
{
InitializeComponent();
dataGridView1.DataSource = CreateTestTable();
SetColumnsOrder(dataGridView1);
}

private void SetColumnsOrder(DataGridView dgv)
{
dataGridView1.Columns["AccountID"].DisplayIndex = 0;
dataGridView1.Columns["RelationItemTypeID"].DisplayIndex = 1;
dataGridView1.Columns["RelationItemID"].DisplayIndex = 2;
dataGridView1.Columns["OperationDate"].DisplayIndex = 3;
dataGridView1.Columns["CreateDate"].DisplayIndex = 4;
dataGridView1.Columns["OperationValue"].DisplayIndex = 5;
dataGridView1.Columns["Remark"].DisplayIndex = 6;
dataGridView1.Columns["LastChangeTime"].DisplayIndex = 7;
dataGridView1.Columns["ID"].DisplayIndex = 8;
dataGridView1.Columns["BusinessTableCode"].DisplayIndex = 9;
}

//这是测试
private DataTable CreateTestTable()
{
DataTable dt = new DataTable();
DataColumn colID = new DataColumn("ID");
DataColumn colOperationValue = new DataColumn("OperationValue");
DataColumn colOperationDate = new DataColumn("OperationDate");
DataColumn colCreateDate = new DataColumn("CreateDate");
DataColumn colLastChangeTime = new DataColumn("LastChangeTime");
DataColumn colRemark = new DataColumn("Remark");
DataColumn colBusinessTableCode = new DataColumn("BusinessTableCode");
DataColumn colRelationItemTypeID = new DataColumn("RelationItemTypeID");
DataColumn colRelationItemID = new DataColumn("RelationItemID");
DataColumn colAccountID = new DataColumn("AccountID");
dt.Columns.AddRange(new DataColumn[] { colID, colOperationValue, colOperationDate, colCreateDate, colLastChangeTime
, colRemark,colBusinessTableCode,colRelationItemTypeID,colRelationItemID,colAccountID});

return dt;
}

在构造函数Form1()中设置DataGridView的显示列顺序时,显示的顺序与DisplayIndex属性设置的不一致。
希望的顺序:
AccountID
RelationItemTypeID
RelationItemID
OperationDate
CreateDate
OperationValue
Remark
LastChangeTime
ID
BusinessTableCode

而实际显示的顺序为:
AccountID
ID
RelationItemTypeID
RelationItemID
OperationValue
OperationDate
CreateDate
LastChangeTime
Remark
BusinessTableCode

不信在你的机器上试试。
如果把
dataGridView1.DataSource = CreateTestTable();
SetColumnsOrder(dataGridView1);
写到Form_Load()中或按扭事件中显示的顺序正确。

标签:顺序,DataColumn,DataGridView,DispalyIndex,dataGridView1,new,DisplayIndex,Columns
From: https://www.cnblogs.com/guanshan/p/guan2022-9-22.html

相关文章

  • 代码阅读题-Java初始化顺序
    题目如下按理来说,初始化顺序应该是:静态代码块静态变量在静态代码块语句之前执行,因为向前引用非法(静态变量在静态代码块后执行)main()构造代码块构造方法但是......
  • 昨天学习:宏任务与微任务,JS执行机制,执行栈,事件循环,同步异步执行顺序
    宏任务由宿主(浏览器,Node)发起;微任务由JS本身发起。宏任务的具体事件为scrpit(整体代码),setTimeout,setInterval,等。微任务的具体事件为Promise,等。JS执行机制:先处理主线程上......
  • g++ 编译顺序问题
    转自:https://blog.csdn.net/sunny04/article/details/17913949https://cloud.tencent.com/developer/article/11787531.问题g++-lxxxmain.cpp-omain//报错un......
  • 看书顺序
    问题:UNIX环境高级编程UNIX网络编程12这三本书先看哪个一个?网络编程和web编程疑惑,pythontornado源码学习 我的建议如下1.先看图解tcp/ip抓重点。理解面向连接,......
  • js数组sort()方法按指定顺序排序
    一、sort介绍数组的sort()方法可以把数组排序,不传参数的默认按字典排序sort()方法还接受一个回调函数,按回调函数内代码逻辑排序该函数要比较两个值,然后返回一个用于说明这......
  • 字节顺序标记
    UTF-32和UTF-16的一个CodeUnit,需要转换成多个字节的序列,因此存在字节序的问题。可以在UTF-32或UTF-16编码的字节流开头,添加字节顺序标记(byte-ordermark,BOM)......
  • pytest测试框架2【控制用例的执行顺序】
    1.pytest加载所有的测试用例都是乱序的,如果想指定用例的顺序,可以使用pytest-ordering插件,指定用例的执行顺序只需要在测试用例的方法前面加上装饰器@pytest.mark.run(order......
  • SQL数据库语句执行顺序
    数据库查询语句完整的执行顺序:逻辑查询处理阶段简介:1、FROM:对FROM子句中的前两个表执行笛卡尔积(交叉联接),生成虚拟表VT1。2、ON:对VT1应用ON筛选器,只有那些使......
  • C# WinForm DataGridView根据某一列值改变行颜色
    DataGridView根据某一列值改变行颜色,需要同时用到事件:CurrentCellDirtyStateChanged和CellValueChangedprivatevoiddgv1_CellValueChanged(objectsender,D......
  • C# DataGridView防止闪烁的方法
    启用dataGridView的双缓冲即可解决,方法如下:Typetype=dataGridView.GetType();PropertyInfopi=type.GetProperty("DoubleBuffered",......