在不同形式之间切换

时间:2012-05-02 00:37:39

标签: vb.net winforms

我的应用程序中有一些表单,需要在它们之间切换。我不想在其他表单上打开另一个表单,简而言之,我希望用户能够感觉到他只在一个表单上工作。现在我正在做这样的事情,但这不是我想要的

    Public Class Form1

    Dim fo As Form2


    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load


        Form2.TopLevel = False

        Me.Panel1.Controls.Add(Form2)

        Form2.Show()


    End Sub
End Class

我还需要将数据发送到其他表单,例如某些类的列表。

2 个答案:

答案 0 :(得分:2)

查看UserControls(Composite Controls)。它们将允许您创建包含事件和属性的自定义布局,并将其添加到面板中。我用它来交换我的应用程序的编辑页面。

这是一个非常简单的例子:( 1个表格,2个面板,2个用户控件)

<强> Form1中

Public Class Form1

    Public Sub New()
        ' This call is required by the designer.
        InitializeComponent()
        ' Add any initialization after the InitializeComponent() call.
    End Sub

    Private Sub UserControl11_SendText(value As String) Handles UserControl11.SendText
        UserControl12.SetText(value)
    End Sub

    Private Sub UserControl12_SendText(value As String) Handles UserControl12.SendText
        UserControl11.SetText(value)
    End Sub
End Class

<强>用户控件

Public Class UserControl1
    Public Event SendText(ByVal Text As String)

    Public Sub SetText(value As String)
        Label1.Text = value
    End Sub

    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
        RaiseEvent SendText(TextBox1.Text)
    End Sub
End Class

答案 1 :(得分:0)

您是否考虑过使用TabControl?这将允许您创建不同的屏幕,您(或用户)可以轻松地在它们之间切换。