桌面应用程序动态GUI问题

时间:2010-01-25 22:38:47

标签: c# desktop-application

我问了一个问题“桌面应用程序中是否有类似母版的内容?”现在,我的立场是,我必须延伸这个问题。谢谢你的理解。

我在项目中添加了一个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。

2 个答案:

答案 0 :(得分:2)

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

然后,您可以添加一个面板并清除面板中包含的控件,并添加新控件以显示您所追踪的视图。

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

答案 1 :(得分:0)

不确定如何在winforms中轻松完成此操作,但在WPF中,您可以创建导航应用程序 - 类似于Web浏览器体验但仍然是独立应用程序的链接驱动导航。有关如何入门的详细信息,请参阅http://msdn.microsoft.com/en-us/rampup/cc514215.aspx