为什么,此代码在网格(颜色和颜色)中创建2个相同的列。如何在集合数据源之前存在的列中从集合中输入数据颜色??
public Form1()
{
InitializeComponent();
DataGridViewTextBoxColumn ds = new DataGridViewTextBoxColumn();
ds.Name = "Color";
dataGridView1.Columns.Add(ds);
List<Car> cars=new List<Car>();
for (int i = 0; i < 5; i++)
{
Car car=new Car {Type = "type" + i.ToString(),Color=Color.Silver};
cars.Add(car);
}
dataGridView1.DataSource = cars;
}
答案 0 :(得分:1)
您必须在设置DataSource之前设置AutoGenerateColumns=false
。
设置AutoGenerateColumns=true
并在之后找到该列:
var ds = dataGridView1.Columns["Color"] as DataGridViewTextBoxColumn;
也就是说,如果你想要它 - 你的代码并没有真正使用该列,所以你也可以删除创建它的代码。
答案 1 :(得分:0)
您静态添加“颜色”列。然后将List设置为网格的数据源。您在Car类中定义了“Color”属性。此属性也会反映并显示为列。