DataGridView避免添加新列

时间:2010-03-15 10:36:48

标签: c# datagridview

为什么,此代码在网格(颜色和颜色)中创建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;


        }

2 个答案:

答案 0 :(得分:1)

您必须在设置DataSource之前设置AutoGenerateColumns=false

拿2:

设置AutoGenerateColumns=true并在之后找到该列:

 var ds = dataGridView1.Columns["Color"] as DataGridViewTextBoxColumn;

也就是说,如果你想要它 - 你的代码并没有真正使用该列,所以你也可以删除创建它的代码。

答案 1 :(得分:0)

您静态添加“颜色”列。然后将List设置为网格的数据源。您在Car类中定义了“Color”属性。此属性也会反映并显示为列。