【发布时间】:2013-08-14 14:20:07
【问题描述】:
我在表单上有一个按钮,可以将新表单作为自有表单打开。 (很简单,除了下面没有别的逻辑)
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button2_Click(object sender, EventArgs e)
{
Form form = new Form();
form.Show(this);
}
}
我的问题如下:
- 如果我单击按钮以获取自有表单的实例并将其拖到它自己的监视器上。
- 最大化拥有的表单
- 最小化原来的主窗体(Form1)
- 恢复原来的主窗体(Form1)
然后在恢复最大化时,拥有的表单不再最大化,而是处于正常状态。
编辑: Owned 表单的样式是工具窗口,因此我不能破坏 Owner/Owned 关系。这似乎是 winforms 的问题,但我知道它应该可以纠正,因为 VS 行为正确并将窗口恢复为最大化而不是正常。
【问题讨论】:
-
我试图监听消息队列以了解它恢复的事件,但我只为主表单获取这些,而不是拥有的表单。当我检查所拥有表单的状态时,它已正确最大化。
-
如果他们不表现得像 Owner 和 Owned,那为什么要这样做呢?让它“无人拥有”,它会做你想做的事。
-
拥有的表单被设置为工具窗口,只有在主表单可见时才可见。
-
是否只是为了确保 Owner 总是关闭 Owned?如果是这样,只需手动执行此操作,并将其保留为非所有者。
-
这将需要更改大量代码以确保表单已关闭并最小化并正确位于主表单之上。我不认为这是一个解决方案。
标签: c# winforms maximize-window