【发布时间】:2013-08-12 15:56:21
【问题描述】:
我正在用 VB.NET 编写一个 Windows 窗体应用程序。我有三个表单:主表单,显示帐户列表,帐户表单允许用户查看/编辑特定帐户的信息,策略表单允许用户查看/编辑信息该帐户的具体政策。我希望表单看起来好像它们都是同一个窗口。示例:当应用程序启动时,用户在主窗体的列表框中单击一个帐户名称,然后单击“编辑”。我想要发生的是窗口保持在完全相同的位置并保持相同的确切大小,只有主表单的内容似乎被帐户表单的内容替换。如果用户随后选择从帐户表单中编辑策略,则同样如此。当用户完成并单击“保存”时,主窗体会恢复。在整个用例中,用户会觉得好像他们一直在查看同一个窗口,而该窗口的内容会发生变化。
我该怎么做?我尝试过类似的方法:
Dim newForm as New AcctForm
newForm.Location = Me.Location
newForm.Show()
Me.Close()
问题在于,如果用户移动原始窗口,新窗口会出现在父窗体最初出现的位置,而不是最终出现的位置。
【问题讨论】:
-
使用用户控件而不是表单。
-
没有办法使用面板来完成这个?还是如 HighCore 所说,用户控件?
-
+1 到用户控制。创建三个用户控件(每个表单一个)然后相应地放置它们(或显示/隐藏它们)
-
您可以完全撕毁您的程序并丢掉数周的工作,这是用户的常见建议,他们对 Winforms 一无所知,但不会让他们在发布 cmets 时减慢他们的速度。或者您可以将表单的 StartupPosition 属性设置为 Manual。
-
如何实现某种 MDI 父/子概念。