0

オーバーロード コンストラクター メソッドを使用して、あるフォームから別のフォームにデータを渡そうとしています。パブリック変数またはプロパティを使用することもできますが、オーバーロード メソッドを使用したいと考えています。

これは、2 番目のフォームを呼び出す最初のフォームのコード セクションです...

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

それを行った後、最初のフォームのこのコード行で「NEW」でエラーが発生します。

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 に答える