解决方案如下 :
1. dataGridView1.AutoGenerateColumns = false;
2. 绑定的dataSource 中所有的列都要写进去(列一定是绑定的模型中属性)
先在界面上就给datagridview添加全部的可能出现的列。设置顺序,不显示的, visible= false;
3. Columns["CompanyName"].DisplayIndex = 4;
原文:https://www.cnblogs.com/wisdo/p/10797686.html