窗体隐藏在 ShowDialog() 之后的另一个窗体后面
本文关键字:窗体 另一个 之后 隐藏 ShowDialog | 更新日期: 2023-09-27 18:30:21
我在应用程序中使用了从Form
类继承的自定义Messagebox
。当我在主窗体上使用它时,它工作正常。但是当我在本身从主窗体弹出的窗体上使用其Show()
函数时,Messagebox
隐藏在第二个窗体下,因此程序变得不可用。
即使我在ShowDialog()
之前使用它的BringToFront()
功能,它仍然会返回。这是此自定义消息框的Show()
功能。如有必要,我可以分享更多代码:
public static DialogResult Show(string message, string title)
{
_msgBox = new MsgBox();
_msgBox._lblMessage.Text = message;
_msgBox._lblTitle.Text = title;
_msgBox.Size = MsgBox.MessageSize(message);
MsgBox.InitButtons(Buttons.OK);
//_msgBox.BringToFront();
_msgBox.ShowDialog();
return _buttonResult;
}
MsgBox
是类本身的名称:
class MsgBox : Form
尝试传递内部消息框类的 Owner 值
public static DialogResult Show(string message, string title, Form owner = null)
{
_msgBox = new MsgBox();
_msgBox._lblMessage.Text = message;
_msgBox._lblTitle.Text = title;
_msgBox.Size = MsgBox.MessageSize(message);
MsgBox.InitButtons(Buttons.OK);
if(owner != null)
_msgBox.ShowDialog(owner);
else
_msgBox.ShowDialog();
return _buttonResult;
}
使用默认参数,您可以只在需要时更改代码。
经过一番研究,我发现了这个问题及其答案,可以解释这种行为