我正在VS 2012中的vb.net项目中工作,该项目具有多种形式。可以说,我有一个带有ListView的Form1,我从Form1调用了From2。我将此代码添加到Form2的Load事件中:

Form1.ListViewTest.Items.Add("test")

Visual Studio不会引发任何错误,但实际上在Form1的ListView控件中什么也没有发生。我试图将修改器从“ friend ”更改为“公开”,但没有成功。还有其他我想念的吗?

最佳答案

您必须访问form1的实例,而不是form 1对象本身。逐步浏览所有打开的表单,然后获取所需的表单。我个人使用表单的.Tag对象,并在其中添加一个字符串以进行标识。

    For Each f As Form In My.Application.OpenForms

        If Not f.InvokeRequired Then
            ' Can access the form directly.
            'Get main form , use main form
            If f.Tag = "main" Then
                Dim fcast As New form_form1 '<< whatever your form name
                fcast = f
                Dim xitem As New ListViewItem
                xitem.Text = "blah"
                xitem.SubItems.Add("sub blah")

                fcast.listview1.Items.Add(xitem) '<< use listview name
            End If

        End If

    Next

关于vb.net - 其他形式的VB.NET的访问控制,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18081978/

10-14 11:23