自定义消息弹出框的一个很不错的实例

最近看到博客园上 郑文亮对自定义消息弹出框的源代码,发现很不错,定义内容简单但是实用,其中我对一些内容的调用不是很理解,主要是 invoke()的使用,先截图其中一段代码下来,希望以后能弄懂,或者有大拿能给我启发。

附上源文件下载链接

 1 // 跨线程使用之必须
 2         private delegate DialogResult ShowItDelegate(Form owner);
 3         private static DialogResult ShowIt(Form owner, MsgBox mbx)
 4         {
 5             if (owner != null
 6                 && owner.InvokeRequired)
 7             {
 8                 ShowItDelegate d = new ShowItDelegate(mbx.ShowDialog);
 9                 return (DialogResult)owner.Invoke(d, owner);
10             }
11 
12             return mbx.ShowDialog(owner);
13         }
14 
15         #region "overloads of Show ..."
16 
17         /// <summary>
18         /// 重载0.0: 显示自定义的消息框, 指定owner
19         /// </summary>
20         /// <param name="owner">宿主窗体</param>
21         /// <param name="msg">消息文本</param>
22         /// <param name="caption">消息标题</param>
23         /// <param name="btns">要在界面上显示的按钮组合</param>
24         /// <param name="icon">要在界面上显示的图标</param>
25         /// <returns></returns>
26         public static DialogResult Show(
27                 Form owner,
28                 string msg, string caption,
29                 MsgBoxButtons btns, MsgBoxIcons icon)
30         {
31             using (MsgBox mbx = new MsgBox())
32             {
33                 mbx.SetIcon(icon);
34                 mbx.SetCaption(caption);
35                 mbx.SetMsg(msg);
36                 mbx.LayoutBtns(btns);
37                 MsgBox.DoBeep(icon);
38 
39                 return ShowIt(owner, mbx);
40             }
41         }

转载至 郑文亮 的使用winform自己做一个消息框, 以取代系统提供的MessageBox

原文地址:https://www.cnblogs.com/zhaosw/p/5316151.html