C#中对话框自动关闭的一种方法。

Posted dotNET编程大全

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#中对话框自动关闭的一种方法。相关的知识,希望对你有一定的参考价值。

MessageBoxTimeout是一个微软未公开的Windows API函数。实现定时消息,功能类似于MessageBox。如果用户不回应,能定时关闭消息框。函数由user32.dll导出,windows2000及以下没有此函数。

 原型:

int MessageBoxTimeoutA(HWND hWnd, LPCSTR lpText, LPCSTR lpCaption, UINT uType, WORD wLanguageId, DWORD dwMilliseconds); int MessageBoxTimeoutW(HWND hWnd, LPCWSTR lpText, LPCWSTR lpCaption, UINT uType, WORD wLanguageId, DWORD dwMilliseconds)[1]

参数: 

hwnd//消息框的拥有窗口。
lptext//消息框的内容。
lpCaption//消息框的标题。
uType//指定一个决定对话框的按钮类型和图标类型的位标志集。
wLanguageId//函数扩展,一般取0。
dwMilliseconds//消息框延迟关闭时间,单位:毫秒。

UTYPE取值:

uType:按钮类型,以下给出常量,可相加。
意思是从需要的每一组中选择一种功能,将其前面的数值相加,写在uType的取值处,
这样,对话框就能应用所有选定的功能。

每组只能取一个类型,第五组除外,复制于易语言给出的提示。



第一组(描述对话框中显示按钮的类型与数目):
0、#确认钮;1、#确认取消钮;2、#放弃重试忽略钮;3、#取消是否钮;4、#是否钮;5、#重试取消钮
第二组(描述图标的样式):
16、#错误图标; 32、#询问图标; 48、#警告图标; 64、#信息图标
第三组(说明哪一个按钮是缺省默认值):
0、#默认按钮一; 256、#默认按钮二; 512、#默认按钮三; 768、#默认按钮四
第四组(决定如何等待消息框结束):
0、#程序等待; 4096、#系统等待
第五组(其它):
65536、#位于前台; 524288、#文本右对齐

返回值:

除了选则第一组的0类型时,返回是1,其它类型都是默认返回是32000。

确认:1

取消:2

中止:3

重试:4

忽略:5

是:6

否:7

 

1、在类的开头增加如下代码:

 [DllImport("user32.dll")]  public static extern int MessageBoxTimeoutA(IntPtr hWnd, string msg, string Caps, int type, int Id, int time); //引用DLL

像这样:

 

2、 在按钮事件或者鼠标事件等其它事件中,加入如下代码:

MessageBoxTimeoutA((IntPtr)0, "3秒后自动关闭", "消息框", 0, 0, 3000); // 直接调用 3秒后自动关闭

像这样:

C#中对话框自动关闭的一种方法。

 每日分享不易,"在看"就是鼓励!


以上是关于C#中对话框自动关闭的一种方法。的主要内容,如果未能解决你的问题,请参考以下文章

我该如何做模态对话框片段(代码在我关闭之前不会执行)

C# 最有用的(自定义)代码片段是啥? [关闭]

日期选择器对话框在片段中不起作用[关闭]

从 dialogfragment 调用 onBackPressed 完成活动

C# WinForm 怎么设置弹出对话框然后2秒后自动关闭

在 Kotlin 中调整对话框片段的大小