Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 桌面应用程序动态GUI问题_C#_Desktop Application - Fatal编程技术网

C# 桌面应用程序动态GUI问题

C# 桌面应用程序动态GUI问题,c#,desktop-application,C#,Desktop Application,我曾经问过这样一个问题:“桌面应用程序中是否存在类似母版页的东西?”现在我必须扩展这个问题。谢谢你的理解 我已将一个MDI主窗体添加到我的项目中,并将几个继承MDI主窗体的继承窗体添加到我的项目中。我用的是这个代码 private void searchToolStripMenuItem_Click(object sender, EventArgs e) { foreach (Form child in this.MdiChildren) { child.Close

我曾经问过这样一个问题:“桌面应用程序中是否存在类似母版页的东西?”现在我必须扩展这个问题。谢谢你的理解

我已将一个MDI主窗体添加到我的项目中,并将几个继承MDI主窗体的继承窗体添加到我的项目中。我用的是这个代码

private void searchToolStripMenuItem_Click(object sender, EventArgs e)
{
    foreach (Form child in this.MdiChildren)
    {
       child.Close();
    }   

    Search childSearchForm = new Search();
    childSearchForm.MdiParent = this;
    childSearchForm.Text = "Search ";
    childSearchForm.Show();            
}
当我按下主窗体上的某个按钮时,会触发此代码,在本例中,新的搜索窗体在主窗体中打开

现在我的问题是构建桌面应用程序的正确方法,或者还有其他更优雅的方法,用户界面的内容可以是动态的,通过单击其中的按钮可以从一个视图切换到另一个视图。例如,单击某个搜索表单上的“搜索”按钮将带您进入搜索结果网格,所有这些都发生在一个主表单中

如果这是正确的方法(我怀疑),我如何通过点击表单内部的按钮来打开其他表单呢。此外,如果我在母版页上放置一些控件,它们将以母版形式和继承形式出现两次

谢谢

PS


我使用的是Visual Studio 2008和MS SQL 2005。

不确定在winforms中如何轻松做到这一点,但在WPF中,您可以创建一个导航应用程序—一个链接驱动的导航,类似于web浏览器体验,但仍然是一个独立的应用程序。有关如何开始的详细信息,请参阅。

如果一次只想显示一个视图,可以为所需的每个视图创建一个新的用户控件。e、 g一个用于搜索结果

然后,您可以添加一个面板并清除面板中包含的控件,然后添加新的面板以显示您要查看的视图


或者如前所述,另一个选项是使用选项卡控件,隐藏选项卡并通过编程设置可见索引。

您可以将子控件放在选项卡上,但使选项卡标题和边框不可见,并控制选项卡从按钮切换。我一定会尝试,我很忙,没有选择。如果你只想要一个表单,我会同意53an并构建用户控件来承载你的所有功能。