1. 程式人生 > >C# WinForm 多線程中彈出MessageBox阻塞窗口的實現方法

C# WinForm 多線程中彈出MessageBox阻塞窗口的實現方法

ebo message con gpo question 調用 C# 窗口 clas


public DialogResult ShowMessage(string text, string caption, MessageBoxButtons buttons, MessageBoxIcon icon)
{
var dr = new DialogResult();
try
{
var tmp = this.Invoke(new MessageBoxShow(MessageBoxShowF), new object[] { text, caption, buttons, icon });
if (tmp != null)
{
dr = (DialogResult)tmp;
}
}
catch
{

}
return dr;
}
delegate DialogResult MessageBoxShow(string text, string caption, MessageBoxButtons buttons, MessageBoxIcon icon);
DialogResult MessageBoxShowF(string text, string caption, MessageBoxButtons buttons, MessageBoxIcon icon)
{

var dr = MessageBox.Show(text, caption, buttons, icon);
return dr;
}

調用方法:

ShowMessage("執行結果,是否成功?", "結果確認", MessageBoxButtons.YesNo, MessageBoxIcon.Question);

C# WinForm 多線程中彈出MessageBox阻塞窗口的實現方法