手动添加DataGridViewRow会导致空单元格

时间:2012-01-06 16:54:40

标签: vb.net datagridview

这有效:

DataGridView.Rows.Add("Bla Bla Bla", value1, value2)

但如果我这样做:

Dim newrow As New DataGridViewRow
newrow.SetValues("Bla Bla Bla", value1, value2)
If Not value1.Equals(value2) Then
  newrow.DefaultCellStyle.ForeColor = Color.Red
End If
DataGridView.Rows.Add(newrow)

整行都是空的。

为什么行中有空单元格?

1 个答案:

答案 0 :(得分:6)

您的newrow变量没有任何单元格,SetValues忽略了您的信息,因为没有任何单元格可以设置值。

来自DataGridViewRow.SetValues Method

  

如果值列表中的值多于要初始化的单元格,则此方法忽略额外值并返回false。如果无法设置任何指定值,则此方法也返回false。

     

如果值小于单元格,则剩余的不匹配单元格将保留其当前值。

使用CreateCells方法填充单元格:

newrow.CreateCells(DataGridView)
'' or
newrow.CreateCells(DataGridView, New Object() {"Bla Bla Bla", value1, value2})