c#backgroundworker创建datagridview并创建列
我遇到这样一个错误:“无法将任何行添加到没有列的DataGridView控件。必须先添加列。”我在这里做错了什么c#backgroundworker创建datagridview并创建列,c#,winforms,datagridview,backgroundworker,C#,Winforms,Datagridview,Backgroundworker,我遇到这样一个错误:“无法将任何行添加到没有列的DataGridView控件。必须先添加列。”我在这里做错了什么 //create datagridview1 DataGridView dataGridView1 = new DataGridView(); // DataGridViewColumn column = new DataGridViewTextBoxColumn(); // Initialize the
//create datagridview1
DataGridView dataGridView1 = new DataGridView();
// DataGridViewColumn column = new DataGridViewTextBoxColumn();
// Initialize the DataGridView.
dataGridView1.AutoGenerateColumns = false;
dataGridView1.AutoSize = true;
DataGridViewColumn column1 = new DataGridViewTextBoxColumn();
column1.DataPropertyName = "Column1";
column1.Name = "title";
dataGridView1.Columns.Add(column1);
DataGridViewColumn column2 = new DataGridViewTextBoxColumn();
column2.DataPropertyName = "Column2";
column2.Name = "imageurl";
dataGridView1.Columns.Add(column2);
DataGridViewColumn column3 = new DataGridViewTextBoxColumn();
column3.DataPropertyName = "Column3";
column3.Name = "videourl";
dataGridView1.Columns.Add(column3);
DataGridViewColumn column4 = new DataGridViewTextBoxColumn();
column4.DataPropertyName = "Column4";
column4.Name = "done";
dataGridView1.Columns.Add(column4);
试一试
或者如果你想选择coulmn类型
DataGridViewColumn newCol = new DataGridViewColumn(); // add a column to the grid
DataGridViewCell cell = new DataGridViewCell(); //Specify which type of cell in this column
newCol.CellTemplate = cell;
newCol.HeaderText = "test2";
newCol.Name = "test2";
newCol.Visible = true;
newCol.Width = 40;
gridColors.Columns.Add(newCol);
从
您还可以看到,该代码直接位于私有void backgroundWorker1_DoWork(对象发送方,doworkereventargs e){dataGridView1.Rows.Add(title,“image”,“videourl”,“no”);@mxadm显示调用
backgroundWorker1.RunWorkerAsync()的代码
。这看起来像是一个同步问题,可能是在向DataGrdiView添加列之前线程正在运行。@mxadm,奇怪。我验证了这一点,也验证了我的工作。注意:add
function receivce 2参数。一个是列名,第二个是标题。
DataGridViewColumn newCol = new DataGridViewColumn(); // add a column to the grid
DataGridViewCell cell = new DataGridViewCell(); //Specify which type of cell in this column
newCol.CellTemplate = cell;
newCol.HeaderText = "test2";
newCol.Name = "test2";
newCol.Visible = true;
newCol.Width = 40;
gridColors.Columns.Add(newCol);