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