8

我正在开发一个工作应用程序,我需要一个自定义的消息框来显示。我创建了一个名为 Alert.cs 的简单表单,我按照我想要的方式设置了样式,并使用 this.Close() 的单击方法添加了一个按钮。现在我希望它的行为与标准的 messagebox.show() 完全一样。我显示了表单,但是当我使用标准 messagebox.show("text of alert") 时,它会等待继续操作,直到用户单击“确定”,这就是我希望表单执行的操作。

4

4 回答 4

12

使用Form.ShowDialog();. 这允许表单以与 a 相同的方式运行,MessageBox因为它在关闭之前保持焦点。

于 2010-03-01T06:14:58.487 回答
6

如果您想要确切的类似 MessageBox 的行为,您将需要为您的 Alert 类实现一个静态方法。

public static DialogResult Show(string text)
{
    Alert form = new Alert(text);
    return form.ShowDialog();
}

现在您可以通过调用来使用该表单:

Alert.Show("my message");
于 2010-03-01T07:05:07.840 回答
3

您可以使用模态窗口窗体。就像是

Form frm = new Form();
frm.ShowDialog(this);

请参见Form.ShowDialog 方法

将窗体显示为模式对话框,当前活动窗口设置为其所有者。

显示模态和非模态 Windows 窗体

于 2010-03-01T06:15:34.210 回答
0

您不写当前如何显示警报表单,而是调用

alert.ShowDialog();

而不是alert.Show()应该做的伎俩。

带有所有者的 ShowDialog 是一个更好的选择:

alert.ShowDialog(owner);
于 2010-03-01T06:15:43.837 回答