現在のフォームで別のフォームから public サブルーチンを呼び出す際に問題が発生しています。パブリックサブを呼び出そうとしているフォームは、呼び出しを行うときに開いています。私はこのアプリケーションでパブリック サブルーチンを呼び出すこの方法を使用してきましたが、これまでは常に機能していました。しかし、今、次のエラーが発生しています...
エラー 1 非共有メンバーへの参照には、オブジェクト参照が必要です。
これが基本的な概要です....作業指示システムであるメインフォーム(frmWorkOrdersMain)があります。私のメイン フォームは、個々の作業指示書を処理するサブ フォーム (frmWorkOrder) を開きます。frmWorkOrder にパーツを追加します。frmWorkOrder は、サブ フォーム (Form1) を開きます。Form1 は arraylist 内のパーツのリストを作成します。このリストを frmWorkOrder 内のパブリック サブルーチンに渡したいと考えています。しかし、上記のエラーが表示されます。
ここで、frmWorkOrderMain のパブリック サブルーチンを使用して、frmWorkOrdersMain の特定の DGV を frmWorkOrder から完全に更新します。
frmWorkOrderMain のパブリック サブ...
Public Sub ReloadWorkOrdersAndJobs()
Dim DS1 As New DataSet
Dim DS2 As New DataSet
Dim DB As New DBWrapper
DS1 = DB.GetCustWO(CInt(cboWOCust.SelectedValue))
DS2 = DB.GetCustJobs(CInt(cboWOCust.SelectedValue))
dgvWO2.DataSource = DS1.Tables("WorkOrders")
dgvJobs2.DataSource = DS2.Tables("Jobs")
dgvWO2.Columns(0).Width = 90
dgvWO2.Columns(1).Width = 493
dgvWO2.Columns(2).Width = 85
dgvWO2.Columns(3).Width = 85
dgvJobs2.Columns(0).Width = 80
dgvJobs2.Columns(1).Width = 353
dgvJobs2.Columns(2).Width = 80
dgvJobs2.Columns(3).Width = 80
dgvJobs2.Columns(4).Width = 80
dgvJobs2.Columns(5).Width = 80
WOMainView()
End Sub
frmWorkOrder を呼び出す...
Private Sub ToolStripButton1_Click(sender As System.Object, e As System.EventArgs) Handles tsbSaveWO.Click
(...code...)
frmDMSWorkOrders.ReloadWorkOrdersAndJobs()
End Sub
それはいつもうまくいきます。アプリケーションのどのフォームからでも呼び出すことができます。ここに、動作しない私の公開サブがあります
frmWorkOrder のパブリック サブ...
Public Sub AddParts(ByVal PartList As ArrayList)
Dim P As New ArrayList
P = PartList
(...CODE....)
End Sub
これがform1からの呼び出しです...
Private Sub btnSaveParts_Click(sender As System.Object, e As System.EventArgs) Handles btnSaveParts.Click
Dim I As Integer
Dim PartList As New ArrayList
Dim P As Part
For I = 0 To dgvPartsToBeAdded.RowCount - 1
P = New Part
P.ID = CInt(dgvPartsToBeAdded.Rows(I).Cells(0).Value)
P.Brand = CStr(dgvPartsToBeAdded.Rows(I).Cells(1).Value)
P.ModelNum = CStr(dgvPartsToBeAdded.Rows(I).Cells(2).Value)
P.PClass = CInt(dgvPartsToBeAdded.Rows(I).Cells(7).Value)
P.UPC = CStr(dgvPartsToBeAdded.Rows(I).Cells(4).Value)
P.Description = CStr(dgvPartsToBeAdded.Rows(I).Cells(3).Value)
P.Serial = CStr(dgvPartsToBeAdded.Rows(I).Cells(5).Value)
P.Notes = CStr(dgvPartsToBeAdded.Rows(I).Cells(8).Value)
P.ServiceTag = CStr(dgvPartsToBeAdded.Rows(I).Cells(6).Value)
PartList.Add(P)
Next
frmWorkOrder.AddParts(PartList)
End Sub
私が見る限り、最初の公開サブを使用するのと同じですが、受け取ったエラーを解決できないようです...
エラー 1 非共有メンバーへの参照には、オブジェクト参照が必要です。
事前にヘルプ、ガイダンス、または指示をいただきありがとうございます。ダン