NMu*_*nro 1 c# modal-dialog messagebox winforms
我正在尝试制作一个消息框模态,但我遇到了线程问题.
我有一个这样的课:
public static class DisplayMessage()
{
public static void ErrorMessage(string errorMessage)
{
MessageBox.Show(errorMessage, "Error", MessageBoxButtons.OK,MessageBoxIcon.Error);
}
//other similar methods
}
Run Code Online (Sandbox Code Playgroud)
所以我希望消息框是主窗体的模态.MessageBox.Show已重载,因此您可以指定IWin32Window.所以我尝试使用.ActiveForm,但我明白了:
跨线程操作无效:从创建它的线程以外的线程访问控件.
试试这个:
public static void ErrorMessage( Form Parent, string errorMessage )
{
if ( Parent != null && Parent.InvokeRequired )
Parent.Invoke( (Action)(() => MessageBox.Show( errorMessage, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error )) );
else
MessageBox.Show( errorMessage, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error );
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1585 次 |
| 最近记录: |