创建UI问题

时间:2010-04-08 10:30:12

标签: .net visual-c++ user-interface

我正在创建一个具有类似安装程序的界面的程序。使用ShowDialog类的Form方法或执行MDI接口来实现它会更好吗?以下是我尝试使用ShowDialog方法执行此操作的方法,以及我遇到的问题:

1)第一个表单ShowInTaskbar属性设置为true,其他表单设置为false。表单以.ShowDialog()方式显示,以响应按钮"Next>"点击事件,单击"<Back"按钮事件调用.Close()方法。在这种情况下,表单以模态模式显示,这对我来说是不好的经历。

2)所有表单都将ShowInTaskbar属性设置为true;表单由.ShowDialog()方法显示,以响应按钮"Next>"的点击事件(相同的事件处理程序设置.Visible=false以隐藏表单);点击事件"<Back"按钮调用.Close()方法。在这种情况下,当按下NextBack关闭并打开一个新窗口时,可以在任务栏中看到。

1 个答案:

答案 0 :(得分:1)

通常,向导式接口通过一个窗口(Form)实现,并按Next / Back按钮替换其内容。

您使用的UI框架有点令人困惑,因为您使用Visual C ++标记了您的问题,建议使用MFC,ATL / WTL或Win32,但您还使用.Net标记了它以及您提到的方法和属性建议的WinForms。

如果您使用的是WinForms,最简单的方法是在表单上创建多个Panel个实例,其中包含您在不同表单上拥有的控件组,只显示/隐藏右侧{{1}取决于按下了哪个按钮以及之前的可见Panel

另一种方法是使用带有隐藏标签按钮的TabControl,然后在按下按钮时更改所选标签。

一篇博客文章,提供generic wizard control的一些示例实现。

是social.msdn.com上的一个旧帖子,它讨论了wizard dialog problem及其各种方法,以及一些更实用的链接。

如果您有组件预算并希望节省一些时间和精力,DevExpress会对商业Wizard进行控制。