在 .net2.0 中,WinFrom 的 DataGridView 绑定数据源后,默认会显示所有数据属性的列。MSDN 中微软告诉我们可以用DataGridView 对象的 AutoGenerateColumns 来控制是否创建所有属性列。如果将 DataGridView 对象的 AutoGenerateColumns 值设为 false,则只会显示你所设定的列。以下是 MSDN 的备注:
如果此属性设置为 true,则在设置或更改 DataSource 或 DataMember 属性时会自动生成列。在将 AutoGenerateColumns 属性从 false 更改为 true 时,也会自动生成列。如果此属性为 true,并且更改 DataSource 会导致出现与以前的 DataSource 值的各列不匹配的列,将丢弃不匹配列中的数据。如果未设置 DataSource 或 DataMember 属性,则会忽略此属性。
每个列标题都将包含该列所表示的属性名称的值。
1. AutoGenerateColumns 属性不会在设计器中出现,也就是说只能在代码中使用。
2. AutoGenerateColumns 属性不能工作在辅助线程中,不在窗口主线程中设置这一值是不会起作用的。
正确的做法是在窗口调用 InitializeComponent(); 后(一般是在窗口类的构造函数中,不要在辅助线程中做),将对应DataGridView 的 AutoGenerateColumns 属性设置为 false;