gpt4 book ai didi

c# - 为什么模态形式在最小化时会完全消失?

转载 作者:太空宇宙 更新时间:2023-11-03 22:05:10 24 4
gpt4 key购买 nike

我试图在模态表单最小化时使所有者表单最小化。但是当我最小化模态形式时——它完全消失了。 (- 我可以点击所有者表格。)

我该如何解决?

我有:

public partial class Form1 : Form
{
Form2 frm2 = new Form2();

public Form1()
{
InitializeComponent();
frm2.Owner = this;
}

private void button1_Click(object sender, EventArgs e)
{
frm2.ShowDialog();
}
}

和:

class Form2 : Form
{
Form1 frm1;
FormWindowState ws = new FormWindowState();

public Form2()
{
SizeChanged += new EventHandler(Form2_SizeChanged);
}

void Form2_SizeChanged(object sender, EventArgs e)
{
frm1 = (Form1)Owner;
if (WindowState == FormWindowState.Minimized)
{
ws = frm1.WindowState;
frm1.WindowState = FormWindowState.Minimized;
}
else frm1.WindowState = ws;
}

}

(在尝试这个的时候,我也遇到了这个:Modal form doesn't appear in tray until minimized and owner-form is clicked once. How do I make it appear?)

最佳答案

这是设计使然。作为模态契约(Contract)的一部分,显示对话框会禁用应用程序中的所有其他窗口。当用户最小化对话窗口时,将没有剩余的用户可以访问的窗口。使应用程序无法使用。 Winforms 通过在对话框最小化时自动关闭对话框来确保不会发生这种情况。

很明显,您根本不想发生这种情况。将 MinimizeBox 属性设置为 false。 MaximizeBox 属性也应该设置为 false,使两个按钮从窗口标题中消失。顺便说一下,为 HelpButton 留出空间。

关于c# - 为什么模态形式在最小化时会完全消失?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8705018/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com