1
在互聯網上有答案,但它不工作,我想知道我做錯了什麼。以編程方式向datagridview添加一行
我有一個DataGridView
1列,Column1
。這是列的名稱,而不是文本或其他任何內容。
private void InitializeComponent()
{
this.dataGridView1 = new System.Windows.Forms.DataGridView();
this.Column1 = new System.Windows.Forms.DataGridViewTextBoxColumn();
((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).BeginInit();
this.SuspendLayout();
//
// dataGridView1
//
this.dataGridView1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this.dataGridView1.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
this.Column1});
this.dataGridView1.Name = "dataGridView1";
//
// Column1
//
this.Column1.HeaderText = "Column1";
this.Column1.Name = "Column1";
.....
}
public Form1()
{
InitializeComponent();
// Works
DataGridViewRow row = (DataGridViewRow)dataGridView1.Rows[0].Clone();
row.Cells[0].Value = "AAAAA";
dataGridView1.Rows.Add(row);
// Fails
row = (DataGridViewRow)dataGridView1.Rows[0].Clone();
row.Cells["Column1"].Value = "AAAAA"; // Argument Exception: "Column named Column1 cannot be found"
dataGridView1.Rows.Add(row);
}
請解釋一下嗎?非常感謝!
謝謝!我看到的其他地方都提到了我的代碼。沒有意識到行不是表的一部分,或者它沒有引用列,因爲它是一行的克隆。無論哪種方式,這就是我一直在尋找的,所以謝謝! – Tizz