在运行时重置 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 组合框数据的主要内容,如果未能解决你的问题,请参考以下文章