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

时间:2012-05-31 10:13:39

标签: vb.net datagridview datagridviewcombobox

我正在表单加载事件上创建网格。 最初我在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

显示旧记录和新记录。请帮助。

3 个答案:

答案 0 :(得分:1)

可能是你的代码

If IsDBNull(dgvc) = False Then 

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

您是否可以尝试以这种方式进行更改并查看现在是否输入if条件?

If IsDBNull(dgvc.DataSource) = False Then 

答案 1 :(得分:0)

我得到了以下解决方案:

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

答案 2 :(得分:0)

这有效

cb.SelectedItem = Nothing