[英]Non-autoblocking MessageBoxes in c#
任何人都知道.NET中的messageBox不会阻止创建它的线程,直到它关闭?
private void ShowMessageBox(string text, string caption)
{
Thread t = new Thread(() => MyMessageBox(text, caption));
t.Start();
}
private void MyMessageBox(object text, object caption)
{
MessageBox.Show((string)text, (string)caption);
}
您可以使用文本和标题调用ShowMessageBox()
。 这只是一个简单的示例,您可以添加按钮或图标所有者或您想要的其他参数。
可能最简单的是:
Thread t = new Thread(() => MessageBox.Show(text));
t.Start();
您通过System.Windows.Forms
命名空间使用的默认MessageBox
将始终为模态(即阻塞)。 如果您想要一个无模式消息框,您应该创建一个看起来像MessageBox
自己的WindowsForm
。
然后,您将显示以下表格:
// C#
//Display frmAbout as a modeless dialog
Form f= new Form();
f.Show();
您可以将这些其他答案简化为一行代码
new Thread(() => System.Windows.Forms.MessageBox.Show(text)).Start();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.