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

Bas*_*lew 5 vb.net datagridview

这有效:

DataGridView.Rows.Add("Bla Bla Bla", value1, value2)
Run Code Online (Sandbox Code Playgroud)

但如果我这样做:

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)
Run Code Online (Sandbox Code Playgroud)

整行都是空的.

为什么排满了空单元格?

Lar*_*ech 6

您的newrow变量没有任何单元格,并且SetValues忽略了您的信息,因为没有任何单元格要设置值.

从DataGridViewRow.SetValues方法:

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

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

使用该CreateCells方法填充单元格:

newrow.CreateCells(DataGridView)
'' or
newrow.CreateCells(DataGridView, New Object() {"Bla Bla Bla", value1, value2})
Run Code Online (Sandbox Code Playgroud)