我正在使用 Visual Studio 2010。我创建了一个新的 VB Windows 窗体应用程序,它使用了多个窗体。
在其中一个表单 (form2) 上,我根据用户在 form1 上选择的许多项目创建了一个 datagridview。
然后,最终用户可以在 datagridvew 上添加信息,然后转到第三种表单 (form3)。在第三个表单上,我想将与 form2 上数据网格的前三列相同的信息复制到一个新的数据网格中。
要从 form1 的列表框中复制项目,我使用类似于以下的代码:
For Each Feature As Object in form1.listbox1.SelectedItems
Me.DatagridView(Col, Row).Value = DirectCast(CustomerFeature, DataRowView)("Feature").ToString()
Row +=1
Next
我想使用:
For Each row As DGVRow In form2.DatagridView.Rows
'add information to the new datagrid
Next
在我的 Form3 上。但是,当我尝试访问 form2 数据时,它不会出现在智能感知中,也不会让我手动输入信息。当我尝试运行程序时,我得到:
“错误 1 对非共享成员的引用需要对象引用。”
我什至无法访问我在该表单上声明的公共变量。我应该提到 form2 是使用以下方法调用的:
Private Sub BTN_Next_Click(sender As System.Object, e As System.EventArgs) Handles BTN_Next.Click
Dim frm_PI_01 As New form2(PIMethod, StartTime, TheUser, TheComputer)
frm_PI_01.ShowDialog()
End Sub
新方法使用:
Public Sub New(ByVal PIMethod As String, ByVal StartTime As Date, ByVal TheUser As String, ByVal TheComputer As String)
' This call is required by the designer.
InitializeComponent()
PI_Method = PIMethod
Start_Time = StartTime
The_User = TheUser
The_Computer = TheComputer
End Sub
在 onload 事件期间填充数据网格。