2013-01-02 20 views
1

可能重复:
Creating Wizards for Windows Forms in C#是否有.Net表单容器?

我新的发展VB.NET中的形式,我现在有一个“向导”在现阶段,我只是把它设置为不同的形式,但问题在于更改窗体时Windows完全动画和窗口位置可能会更改。这在用户端不太好。

我见过的另一种方法是手动隐藏/显示所有元素,但这很麻烦,很难维护。因此,是否有一个父容器可以在其中指定单独的表单,因此所有表单逻辑仍然位于单独的文件中,但它是通过一个表单(从用户的角度来看)访问的?

注:我目前使用.Show和.Hide在表单之间切换。

使用常规的Windows窗体,.NET与相同大小和位置面板2.0

+0

我假设您使用的是Windows窗体。如果你想知道你使用的是WinForms还是WPF,那么我就不必假设。 –

回答

1

您可以使用一些技巧将表单加载到面板中。我在主窗体中添加一个面板,然后调暗一个我想要显示的新窗体,并将其添加到面板。想要显示另一个表单,清除面板并加载一个新表单。以下是我用于将表单加载到面板的代码:

Dim formToShow As New Form2 
formToShow.TopLevel = False 
formToShow.WindowState = FormWindowState.Maximized 
formToShow.FormBorderStyle = Windows.Forms.FormBorderStyle.None 
formToShow.Visible = True 
Panel1.Controls.Add(formToShow) 
+0

无论如何要将键盘事件转发给内部表单吗?例如,选项卡不起作用,只能制作容器表单。 – Mattisdada

+0

我真的不知道,没有遇到过,我摧毁了我写的代码。我需要在我的紧迫工作完成后在今天晚些时候重新创建它。 – Wade73

0

把每个窗体的控件。因此,您不必逐个隐藏所有控件,只需隐藏一个面板并显示另一个面板即可。

2

您应该考虑将您的控件放在一个或多个UserControl s之内。这使您可以像表单一样设计和使用它,但可以作为单个“控件”使用,您可以根据需要显示或隐藏该控件。

有关详细信息,请参阅MSDN上的Developing Custom Windows Forms Controls with the .NET Framework

+0

有趣而又聪明的一个o.O – theGD