0

根据当前表单中确定的变量来填充表单时遇到一些问题。

我有一个搜索结果表单,它有一个包含所有结果的数据网格,每行都有一个打开表单按钮。当用户单击它时,rowindex 用于提取该记录的 ID,然后将其提供给新打开的表单并根据使用 ID 作为参数运行的 SQL 存储过程进行填充。

但是,目前该变量没有传递给表单,并且不知道为什么会这样。如果我在代码中设置 id,存储过程运行良好。这是我的表单开放代码,带有 sci

Public Class SearchForm
    Dim Open As New FormOpen
    Dim data As New SQLConn
    Public scid As Integer

    Private Sub Search_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        Dim sql As New SQLConn
        Call sql.SearchData()

        dgvSearch.DataSource = sql.dt.Tables(0)
    End Sub

    Private Sub dgvSearch_CellContentClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles dgvSearch.CellContentClick
        Dim rowindex As Integer
        Dim oform As New SprinklerCardOpen

        rowindex = e.RowIndex.ToString
        scid = dgvSearch.Rows(rowindex).Cells(1).Value
        TextBox1.Text = scid

        If e.ColumnIndex = 0 Then
            oform.Show()

        End If

    End Sub
End Class

表格打开然后有以下内容:

Private Sub SprinklerCard_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

    'Populate fields from SQL

    Try
        Call Populate.SprinklerCardPopulate(ID)
        cboInsured.Text = Populate.dt.Tables(0).Rows(0).Item(1)
        txtAddress.Text = Populate.dt.Tables(0).Rows(0).Item(2)
        txtContactName.Text = Populate.dt.Tables(0).Rows(0).Item(3)
        txtContactPhone.Text = Populate.dt.Tables(0).Rows(0).Item(4)
        txtContactEmail.Text = Populate.dt.Tables(0).Rows(0).Item(5)
        numPumps.Value = Populate.dt.Tables(0).Rows(0).Item(6)
        numValves.Value = Populate.dt.Tables(0).Rows(0).Item(7)
        cboLeadFollow.Text = Populate.dt.Tables(0).Rows(0).Item(8)
        cboImpairment.Text = Populate.dt.Tables(0).Rows(0).Item(9)
        txtComments.Text = Populate.dt.Tables(0).Rows(0).Item(10)
    Catch ex As Exception
        MsgBox(ex.ToString & "SCID = " & ID)
    End Try

End Sub 
4

1 回答 1

0

ID在打开它之前在表单中设置变量。

If e.ColumnIndex = 0 Then
    oform.ID = scid
    oform.Show()
End If
于 2013-06-03T17:21:30.503 回答