首页 > 解决方案 > DataGridView CurrentRow Index 在 vb.net 上没有任何错误

问题描述

在我的 DataGridView 中有 3 列分别是文本框、文本框和组合框。我正在尝试向该行的组合框添加值。但我找不到当前行,因为它返回一个错误并说它为空。我不知道如何处理这个。

Public Shared Sub ListSubvarsPA(ByVal mdl As IScrModel, ByVal dgvStd As DataGridView, ByVal dgvDiscr As DataGridView)
    dgvStd.Rows.Clear()
    dgvDiscr.Rows.Clear()
    Dim grpName As String = My.Settings.str_elem__subvar_grpname_pa
    If mdl.findElement(grpName, False) IsNot Nothing Then
        Dim grpList As IScrSubVarGroup = CType(mdl.findElement(grpName, False), IScrSubVarGroup)
        Dim objList As IScrNamedObjectList = grpList.getSubvarList(True)
        For i As Integer = 0 To objList.count - 1
            Dim obj As IScrSubVar = CType(objList.item(i), IScrSubVar)
            Select Case obj.get_discr_str.Length
                Case Is > 1
                    Dim itemindex As Integer = Array.IndexOf(obj.get_discr_str(), obj.str.src)
                    dgvDiscr.Rows.Add(obj.fullName.Substring(grpName.Length + 1), obj.discr_desc(itemindex).src)
                    Dim cbCell As New DataGridViewComboBoxCell
                    cbCell = CType(dgvDiscr.Rows(dgvDiscr.CurrentRow.Index).Cells(2), DataGridViewComboBoxCell)
                    cbCell.Items.Clear()
                    For iIndex = 0 To UBound(obj.get_discr_desc())
                        cbCell.Items.Add(obj.get_discr_desc().GetValue(iIndex))
                    Next
                Case Else
                    dgvStd.Rows.Add(obj.fullName.Substring(grpName.Length + 1), obj.str.src)
            End Select
        Next
    End If
End Sub

在这里,我将值添加到现有的 DataGridViewCombobox 值是问题部分,因为我找不到最新的行。

 Dim itemindex As Integer = Array.IndexOf(obj.get_discr_str(), obj.str.src)
                    dgvDiscr.Rows.Add(obj.fullName.Substring(grpName.Length + 1), obj.discr_desc(itemindex).src)
                    Dim cbCell As New DataGridViewComboBoxCell
                    cbCell = CType(**dgvDiscr.Rows(dgvDiscr.CurrentRow.Index**).Cells(2), DataGridViewComboBoxCell)
                    cbCell.Items.Clear()
                    For iIndex = 0 To UBound(obj.get_discr_desc())
                        cbCell.Items.Add(obj.get_discr_desc().GetValue(iIndex))
                    Next

问题发生在这里

Dim cbCell As New DataGridViewComboBoxCell
cbCell = CType(dgvDiscr.Rows(dgvDiscr.CurrentRow.Index).Cells(2), DataGridViewComboBoxCell)

标签: vb.netdatagridviewdatagridviewcomboboxcell

解决方案


推荐阅读