在DataGridView中添加行(带有预定义列)

时间:2012-07-11 07:01:41

标签: c# visual-studio-2008 datagridview

如何在winform应用程序的 datagridview中添加行

情景是:

  • 我在Windows窗体上有一个网格
  • Grid的列是预先定义的。 (这里,我指的是列索引,名称, 标题文本和顺序在运行时不可更改。)
  • 我需要在该网格中添加新行。

任何人,在这方面帮助我。我该怎么做这个任务?

5 个答案:

答案 0 :(得分:2)

试试这样 -

dataGridView1.Rows.Add(<col1 value>,<col2 value>,...)

参数将是您为每列所用的值。

编辑:

从其他评论中获取代码,您可以像这样使用它 -

myMainApplication.dgvBooksDetails.Rows.Add(objBook.ID, objBook.Title, objBook.Author, 
            objBook.Genre, objBook.Price, objBook.PublishDate, objBook.Description);

修改

在子表单中,存储主表单的实例 -

public MainForm _mainForm;

以主要形式:

SubForm frm = new SubForm();
frm.MainForm = this;
frm.Show();

然后填写datagrid,这样做 -

_mainForm.dgvBookDetails.Rows.Add(.....

希望它有所帮助!

答案 1 :(得分:0)

只需在数据表中添加行,然后将源与datagridview绑定在一起,如下所示:

row = dtTable.NewRow();
///HereEnter the value in row
dtTable.Rows.Add(row);
dataGridView1.DataSource = dtTable;

如果要在不使用datasoruce的情况下添加行,则必须使用DataGridViewRowCollection.Add方法。:

答案 2 :(得分:0)

在你的数据表中添加newrow并按照我在上面的评论中提到的那样绑定它  或者这样做

 private void dataGridView1_RowEnter(object sender, DataGridViewCellEventArgs e)
        {
            // Get all rows entered on each press of Enter.
            var collection = this.dataGridView1.Rows;
            string output = "";
            foreach (DataGridViewRow row in collection)
            {
            foreach (DataGridViewCell cell in row.Cells)
            {
                if (cell.Value != null)
                {
                output += cell.Value.ToString() + " ";
                }
            }
            }
            // Display.
            this.Text = output;
        }

答案 3 :(得分:0)

dataGridView1.Rows.Add(1)不为你做这个伎俩吗?

它应该添加与RowTemplate

DataGridView对应的行

答案 4 :(得分:0)

如果您使用DataTable对象作为DatagGridView的数据源,那么我建议您使用绑定源。

BindingSource bs = new BindingSource();

bs.DataSource = DataTable;

DataGridView1.DataSource = bs;

现在如前所述将数据添加到数据表中。

使用此方法,对数据表所做的任何更改都会自动反映在GridView中。