如何从datagridview中删除行?

时间:2012-03-19 05:42:52

标签: c# winforms datagridview

朋友们,我在windows C#应用程序中使用了datagridview。我们知道,当加载带有datagridview的表单时,会在网格中创建一个默认行。如果我们在任何单元格中输入任何内容(我总共有6列,2个隐藏列),则会创建一个新行。但是,如果我们删除该条目,则不会删除新创建的行。通过这种方式,我们可以创建所需的行,而不会在任何单元格中保留任何值。我希望datagridview最多创建2个这样的行,当两个行中没有值时,要删除的最后一行(这样网格将有1行,其中没有任何数据)。我试图删除datagridview1_CellValueChanged事件中的行,但它不起作用。我应该使用哪个事件以及如何获得所需的功能?请帮忙。

4 个答案:

答案 0 :(得分:1)

试试这个:

DataGridView1.Rows.Remove(row);

答案 1 :(得分:0)

我们有两个从DataGridView中删除行的函数

dataGridView1.Rows.Remove();
dataGridView1.Rows.RemoveAt();

您可以提供行的索引作为参数来删除行。

您可以提供DataGridView的验证或验证事件

答案 2 :(得分:0)

如果使用相同的网格RowCount进行循环,则无法正常工作

  for(int i = 0;i<dataGridMaster.Rows.Count;i++)
            {
               dataGridMaster.Rows.RemoveAt(i);
            }

它无法正确完成工作,因为行数在循环时会发生变化。

而是将数字分配给局部变量,如:

Int loopNum = dataGridMaster.Rows.Count;
for(int i = 0;i<loopNum ;i++)
            {
               dataGridMaster.Rows.RemoveAt(i);
            }

答案 3 :(得分:0)

自动添加默认行以允许用户输入。如果您不想这样做,请将 DataGridView AllowUserToAddRows 属性设置为 false。

dataGridView.AllowUserToAddRows = false;

使其有效地成为只读网格。

相关问题