0

アプリケーションにいくつかのフォームがあり、それらを切り替える必要があります。他のフォームの上に別のフォームを開きたくありません。要するに、ユーザーが 1 つのフォームだけで作業していると感じてもらいたいのです。今、私はこのようなことをしていますが、これは私が望むものではありません

    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

また、あるクラスのリストのような他のフォームにデータを送信する必要があります。

4

2 に答える 2

2

UserControls(Composite Controls)を調べます。イベントとプロパティを使用してカスタム レイアウトを作成し、それをパネルに追加できます。これを使用して、アプリケーションの編集ページをスワップイン/アウトしました。

以下は非常に単純な例です:( 1 つのフォーム、2 つのパネル、2 つのユーザー コントロール)

フォーム1

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
于 2012-05-02T00:47:46.323 に答える
0

TabControlの使用を検討しましたか? これにより、さまざまな画面を作成でき、あなた (またはユーザー) はそれらを簡単に切り替えることができます。

于 2012-05-02T00:38:56.353 に答える