我的应用程序中有一些表单,需要在它们之间切换。我不想在其他表单上打开另一个表单,简而言之,我希望用户能够感觉到他只在一个表单上工作。现在我正在做这样的事情,但这不是我想要的
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
我还需要将数据发送到其他表单,例如某些类的列表。
答案 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?这将允许您创建不同的屏幕,您(或用户)可以轻松地在它们之间切换。