Vb.net 访问用户控制成员';s属性

Vb.net 访问用户控制成员';s属性,vb.net,panel,dynamic-usercontrols,Vb.net,Panel,Dynamic Usercontrols,我创建了一个带有三个面板的UserControl 我在我的主窗体中添加了这个UserControl,但是我有一个问题,我不能选择在我的主窗体中显示哪个面板。 很抱歉,我有下面的代码来显示我的面板1 Public Function Pan1() Panel3_Paint.Visible = False Panel2_Paint.Visible = False Panel1_Paint.Visible = True Return 0 End Function

我创建了一个带有三个面板的UserControl 我在我的主窗体中添加了这个UserControl,但是我有一个问题,我不能选择在我的主窗体中显示哪个面板。 很抱歉,我有下面的代码来显示我的面板1

Public Function Pan1()

    Panel3_Paint.Visible = False
    Panel2_Paint.Visible = False
    Panel1_Paint.Visible = True




    Return 0
End Function
因此,在我点击一个条带菜单后,我试图在我的窗体中显示第一个面板,其中包含此函数,但最后在我的主窗体中显示第三个面板

我是这样使用我的函数的

    Private Sub ClassAToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles ClassAToolStripMenuItem.Click

              UserControl11.Visible = True
              Call Pan1()
    End Sub`
我尝试单击菜单中的特定按钮以显示相应的面板 这就是为什么我尝试使用这个函数,但我有一个问题,在我的表单中,只有第三个面板出现

我的用户控制代码

Public Class UserControl1
Public Sub Panel3_Paint(sender As Object, e As PaintEventArgs) Handles Panel3.Paint

End Sub

Public Sub Panel2_Paint(sender As Object, e As PaintEventArgs) Handles Panel2.Paint

End Sub

Public Sub Panel1_Paint(sender As Object, e As PaintEventArgs) Handles Panel1.Paint

End Sub
末级

我还以这种方式在Form.vb中定义了我的用户控件和面板

Public UserControl1 As New UserControl
Public Panel1_Paint As New Panel
Public Panel2_Paint As New Panel
Public Panel3_Paint As New Panel

在没有看到更多代码的情况下,我假设函数调用可能存在问题

确保在事件中调用该函数。例如,如果将CommandButton添加到表单中,则可以添加以下代码以在单击按钮时运行:

Private Sub CommandButton1_Click()

Call Pan1

End Sub

我希望这能有所帮助。

这样我的问题就解决了。我无法访问面板中的属性,这就是为什么我在UserControl.vb中创建一个公共子对象,并在表单中使用它。 此代码是在my UserControl.vb中编写的

 Public Sub Pan1()
 Panel3_Paint.Visible = False
Panel2_Paint.Visible = False
Panel1_Paint.Visible = True



End Function
然后我以这种方式在我的表格中调用我的Sub

Private Sub ClassAToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles ClassAToolStripMenuItem.Click


    UserControl11.Visible = True
    UserControl11.Pan1()


End Sub

你能详细说明你是如何创建你的用户控件的吗?我在上面写了我的用户控件代码,也写了我的代码如何在表单中定义我的用户控件。我想也许每个定义都会删除最后一个。尝试将面板从Panel3_paint声明为Panel1_paint,而不是从Panel1声明为Panel3。如果Panel1在此之后打开,我们将得到有关问题的线索。看起来您的面板具有公共可见性。我会将它们设置为私有,在你的UserControl上创建属性,并使用它们更改面板的可见性。即使我将公共面板设置为私有,我也会遇到同样的问题,当我将UserControl设置为可见时,仅显示我的第三个面板。很抱歉,这种方法对我的情况没有帮助。我发布了我的全部代码