Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/301.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
c#backgroundworker创建datagridview并创建列_C#_Winforms_Datagridview_Backgroundworker - Fatal编程技术网

c#backgroundworker创建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

我遇到这样一个错误:“无法将任何行添加到没有列的DataGridView控件。必须先添加列。”我在这里做错了什么

        //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);