表格(F1)不最小化父表格(F2)的父表格(F3)何时最小化。
虽然家长正在最小化
F3是F2的母体形式,F2是F1的母体形式。
现在当最小化F3时,F2会自动最小化,但F1仍处于最佳状态。
答案 0 :(得分:0)
您需要使用相同的所有者打开整个链。如果您最小化所有者,那么所有拥有的表单将最小化。
private void button1_Click(object sender, EventArgs e)
{
new Form1().Show(Owner == null ? this : Owner);
}
这种方法的问题在于关闭“中间”。窗口,不会因为它有另一个所有者而最小化最后一个子窗口。
打开这样的表格
private void button1_Click(object sender, EventArgs e)
{
new Form1().Show(this);
}
将使每个表格关闭其拥有的形式。 (关闭主窗口不会关闭最后一个孩子) 我猜你想要一切吗?
可以通过
强制执行该行为 private void button1_Click(object sender, EventArgs e)
{
new Form1().Show(this);
}
private const int WM_SYSCOMMAND = 0x0112;
private const int SC_MINIMIZE = 0xF020;
[SecurityPermission(SecurityAction.LinkDemand, Flags = SecurityPermissionFlag.UnmanagedCode)]
protected override void WndProc(ref Message m)
{
switch (m.Msg)
{
case WM_SYSCOMMAND:
int command = m.WParam.ToInt32() & 0xfff0;
if (command == SC_MINIMIZE)
{
foreach (var frm in OwnedForms)
{
frm.WindowState = FormWindowState.Minimized;
}
}
break;
}
base.WndProc(ref m);
}