在运行时重置 Datagridview 组合框数据

Posted

技术标签:

【中文标题】在运行时重置 Datagridview 组合框数据【英文标题】:Resetting Datagridview combo box data at runtime 【发布时间】:2012-05-31 10:13:39 【问题描述】:

我正在表单加载事件中创建网格。 最初,我将 datagridview 组合框中的一些值设置为:

Dim dgvc As DataGridViewComboBoxCell

datagrigview1.Rows(0).Cells("Column1").Value = txtColumn1.Text \\setting selected item
datagrigview1.Rows(0).Cells("Column1").Value = txtColumn2.Text

dgvc = datagrigview1.Rows(0).Cells("Column1").Value
dgvc.Items.Add((" ")) \\adding blank
dgvc.Items.Add(txtColumn1.Text) \\then required value
dgvc = datagrigview1.Rows(0).Cells("Column1").Value
dgvc.Items.Add((" "))
dgvc.Items.Add(txtColumn2.Text)

现在,当用户单击特定组合框时。我将其中的新值设置为:

// Resetting old values
If IsDBNull(dgvc) = False Then
  dgvc.DataSource = Nothing
  dgvc.Items.Clear()
End If
If DtTable.Rows.Count > 0 Then
  Dim k As Integer
  Dim dgvc1 As DataGridViewComboBoxCell
  dgvc1 = New DataGridViewComboBoxCell()
  For k = 0 To DtTable.Rows.Count - 1
     If DtItemCd.Rows(k)("ItemCd").ToString <> Current_Code Then

     datagrigview1.Rows(e.RowIndex).Cells("Column1").Value = DtTable.Rows(k)("Column1").ToString
     dgvc1 = datagrigview1.Rows(e.RowIndex).Cells("Column1")
     dgvc1.Items.Add(DtTable.Rows(k)("Column1").ToString)

     datagrigview1.Rows(e.RowIndex).Cells("Column2").Value = DtTable.Rows(k)("Column2").ToString
     dgvc1 = datagrigview1.Rows(e.RowIndex).Cells("Column2")
     dgvc1.Items.Add(DtTable.Rows(k)("Column2").ToString)

    End If
  Next
End If

这显示了新旧记录。请帮忙。

【问题讨论】:

【参考方案1】:

这里可能是你的代码

If IsDBNull(dgvc) = False Then 

正在测试 DataGridViewComboBoxCell 是否为 Null,而不是测试其 DataSource 是否为 null。 因此它永远不会进入下面的条件代码。

你能不能试着用这种方式改变,看看现在是否进入了if条件?

If IsDBNull(dgvc.DataSource) = False Then 

【讨论】:

谢谢史蒂夫。但我检查了我的代码。它正在进入if条件。【参考方案2】:

我得到了以下解决方案:

If IsDBNull(dgvc) = False Then
   dgvc.Items.Clear()
   dgvc.DataSource = Nothing
   dgvc = dgvSO.Rows(e.RowIndex).Cells("Column1")
   dgvc.Items.Remove(" ")
   dgvc.Items.Remove(Current_Code)

End If

【讨论】:

【参考方案3】:

这行得通

cb.SelectedItem = Nothing

【讨论】:

以上是关于在运行时重置 Datagridview 组合框数据的主要内容,如果未能解决你的问题,请参考以下文章

Datagridview组合框未在单击/编辑时选择

访问 dataGridView 列中的组合框?

将组合框添加到 DataGridView 标题

将绑定的组合框添加到 datagridview

Datagridview 在更改列组合框值时执行代码

手动添加时绑定datagridview组合框