繁体   English   中英

c#中的非自动阻塞MessageBoxes

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM