很简单的一个问题,花了3到4个钟头,还是不能确定什么原因。
从文本里读出一个列表,每一行作为表的一行,填充到datagridview中去
先定义table,然后定义columns,然后定义row,然后一个一个row加进table中去,
最后将datagridview的datasource属性设定为table,
却总是在最后一句报错,提示空引用实体类似的信息。
搞不清什么原因。
将datagridview1重新new一个,问题还是依旧。
最后不知怎么弄得,反正可以了,代码如下,以后参考
public Form1(string _taskpath)
{
taskpath = _taskpath;
InitializeComponent();
ArrayList taskArray = loadTask();
DataTable dt = new DataTable();
dt.Columns.Add("查询", typeof(String));
dt.Columns.Add("数据库", typeof(String));
dt.Columns.Add("时间", typeof(String));
foreach (string task in taskArray)
{
DataRow dr = dt.NewRow();
dr[0] = task;
dr[1] = "";
dr[2] = "";
dt.Rows.Add(dr);
}
this.dataGridView1.DataSource = dt;
this.dataGridView1.ReadOnly = true;
}
下面部分是Form1.Designer.cs中对form 和datagridview的属性进行设定的代码:
//
// dataGridView1
//
this.dataGridView1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this.dataGridView1.Location = new System.Drawing.Point(34, 50);
this.dataGridView1.Name = "dataGridView1";
this.dataGridView1.RowTemplate.Height = 23;
this.dataGridView1.Size = new System.Drawing.Size(703, 816);
this.dataGridView1.TabIndex = 2;
//
// Form1
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(1107, 920);
this.Controls.Add(this.dataGridView1);
this.Controls.Add(this.label1);
this.Name = "Form1";
this.ShowInTaskbar = false;
this.Text = "Form1";
this.Load += new System.EventHandler(this.Form1_Load);
((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).EndInit();
this.ResumeLayout(false);
this.PerformLayout();