0

好的,我正在尝试使用重载构造方法将数据从一个表单传递到另一个表单。我可以只使用公共变量或属性,但想使用重载方法。

这是我第一个表单中调用第二个表单的代码部分......

Private Sub dgvAllWO_CellDoubleClick(sender As Object, e As System.Windows.Forms.DataGridViewCellEventArgs) Handles dgvAllWO.CellDoubleClick

    Dim I As Integer
    I = dgvAllWO.Rows(e.RowIndex).Cells.Item(0).Value
    Dim frmWO(I) As New frmWorkOrder

End Sub

在这里,我有其他形式的代码...

Public Class frmWorkOrder

    Public Sub New(ByVal ID As Integer)
      InitializeComponent()
    End Sub

    Public Sub New()
      InitializeComponent()
    End Sub

End Class

这样做之后,我现在在我的第一个表单上的这行代码上收到一个“新”错误。

Dim frmWO(I) As New frmWorkOrder

错误 1 ​​数组不能用 'New' 声明

为什么会这样?重载构造函数后,我的表单类变成了一个数组?我不确定这里发生了什么。我很感激你能给我的任何帮助或指导。提前致谢。

4

2 回答 2

0

在 VB 中 New 是构造函数,因此您需要像这样将值传递给构造函数:

Dim frmWO As New frmWorkOrder(I)

如果 frmWO 是一个数组,则如下所示:

frmWO(I) = New frmWorkOrder(I)
于 2013-06-07T14:13:34.800 回答
0

这一行:

Dim frmWO(I) As New frmWorkOrder

应该

Dim frmWO As New frmWorkOrder(I)
于 2013-06-07T14:14:28.803 回答