手动在datagridview上添加行

时间:2012-11-13 14:55:22

标签: c# winforms

我在datagridview上插入了一个复选框列和文本框列。 如何在文本框列上手动添加行。

应该是这样的:

checkbox | textbox
............................
checkbox | item1
checkbox | item2
checkbox | item3
checkbox | item4

以下是datagridview

上复选框和文本框的代码
public void loadgrid()
{
    DataGridViewCheckBoxColumn checkboxColumn = new DataGridViewCheckBoxColumn();
    CheckBox chk = new CheckBox();
    checkboxColumn.Width = 25;
    dataGridView1.Columns.Add(checkboxColumn);

    DataGridViewTextBoxColumn textboxcolumn = new DataGridViewTextBoxColumn();
    TextBox txt = new TextBox();
    textboxcolumn.Width = 150;
    dataGridView1.Columns.Add(textboxcolumn);     
}

2 个答案:

答案 0 :(得分:14)

您可以按照添加列的顺序传递包含应插入DataGridView的值的对象数组。例如,你可以使用它:

dataGridView1.Rows.Add(new object[] { true, "string1" });
dataGridView1.Rows.Add(new object[] { false, "string2" });

你可以从你想要的任何东西构建对象数组,只需确保匹配类型(即使用bool for checkedColumn)

答案 1 :(得分:6)

您可以使用Rows集合手动填充DataGridView控件,而不是将其绑定到数据源。

this.dataGridView1.Rows.Add("five", "six", "seven", "eight");
this.dataGridView1.Rows.Insert(0, "one", "two", "three", "four");

查看documentation

你也可以这样做:

DataGridViewRow row = (DataGridViewRow)yourDataGridView.Rows[0].Clone();
row.Cells["Column2"].Value = "XYZ";
row.Cells["Column6"].Value = 50.2;
yourDataGridView.Rows.Add(row);

请参阅this answer