2

我正在尝试制作一个应用程序,用户可以在其中单击按钮以浏览不同的表单。IE:如果我点击网络状态,它会将主窗体替换为网络状态窗体,然后您可以通过单击“返回”返回主窗体。

这样做的最佳方法是什么?我正在考虑面板,但人们告诉我使用 usercontrol,我对它不太熟悉。我会很感激任何指导。

4

3 回答 3

2

看帖子看不出有任何理由不拥有另一个Form

为什么不创建另一个功能齐全Form的,并隐藏“源” Form

可以创建一些,某种forms linked list结构,你有(比方说)

public class MyAppForm : Form 
{
     MyAppForm _prev... 
     MyAppForm _next...
}

通过这种方式(比如说)Go to next按钮单击,我们隐藏原始,选择和显示_next

只是一个想法。您可以对其进行更改以使其更简单或更好地满足您的应用程序需求。

于 2012-06-15T09:19:21.410 回答
1

您可以在需要时使用多种表格,ShowHide根据需要使用它们。

您还可以考虑使用 MDI 表单之类的东西,您可以在其中拥有一个可以托管菜单、状态和其他栏的父表单。

于 2012-06-15T09:23:35.933 回答
1

在此处输入图像描述

你好,

假设您的要求如storyboard. 根据 UserControl 上的图片UserControl of these many controls有一个。DOCKED现在在空白区域中,您将不得不show / hidepage / form / screen.

我建议这段代码可以帮助您在导航时动态显示/隐藏表单。在您的导航位中有这个,即 Next / Prev 点击Usercontrol-

        form.Location = new Point(leftPaneControl.Width , BannerControl.Height);
        form.Size = new Size(this.Width - leftPaneControl.Width, this.Height - BannerControl.Height);
        form.Anchor = AnchorStyles.Bottom | AnchorStyles.Top | AnchorStyles.Left |
                                   AnchorStyles.Right;
        this.Controls.Add(form);

在 Next 和 Prev clicks 上,您只需Controls.RemoveByKey(...)隐藏现有的表单,上面的代码将add在您实例化相同的表单后成为下一个相应的表单。unique names如果您已为所有forms / screen / page[无论您说什么] 定义,这是一个非常酷的功能,可以从集合中删除控件 [s ]。

这种方法/设计将允许您只专注于设计您的页面/屏幕,因为创建此用户控件是一次性活动。之后,您将只需要一一设计您的个人导航页面/屏幕。

于 2012-06-15T09:52:35.257 回答