本文主要是讲如何实现可设置指定时间自动消失的 MessageBox提示框ShowMessageBoxTimeout实现;

在开发客户端应用程序的时候,经常用得WinForm中MessageBox提示框。但是有时候还是满足不了一些用户要求,客户要求千奇百怪,例如客户需要做某些提示的时候,不去点击确定或取消的时候,等待一段时间自动消失,为此我们可以使用下面类来实现,采用 Thread.Sleep来关掉当前提示框,具体代码如下:

ShowMessageBoxTimeout实现

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.InteropServices;
using System.Windows.Forms;
using System.Threading;namespace Tools.App
{public class ShowMsg{[DllImport("user32.dll", SetLastError = true)]static extern IntPtr FindWindow(string lpClassName, string lpWindowName);[DllImport("user32.dll")]static extern bool EndDialog(IntPtr hDlg, out IntPtr nResult);//三个参数:1、文本提示-text,2、提示框标题-caption,3、按钮类型-MessageBoxButtons ,4、自动消失时间设置-timeoutpublic static void ShowMessageBoxTimeout(string text, string caption,MessageBoxButtons buttons, int timeout){ThreadPool.QueueUserWorkItem(new WaitCallback(CloseMessageBox),new CloseState(caption, timeout));MessageBox.Show(text, caption, buttons);}private static void CloseMessageBox(object state){CloseState closeState = state as CloseState;Thread.Sleep(closeState.Timeout);IntPtr dlg = FindWindow(null, closeState.Caption);if (dlg != IntPtr.Zero){IntPtr result;EndDialog(dlg, out result);}}}
}

ShowMessageBoxTimeout调用

//三个参数:1、文本提示,2、提示框标题,3、按钮类型,4、自动消失时间设置
ShowMsg.ShowMessageBoxTimeout("欢迎使用数据导出服务程序,本程序默认最小化到电脑托盘,1分钟后正式启动。",
"程序启动温馨提示-窗口1分钟内无操作会自动关闭", MessageBoxButtons.OK, 1000 * 60 * 1);

希望以上分享对初学朋友有些帮助,谢谢!
更多关注付义方技术博客:http://blog.csdn.net/fuyifang
或者直接用手机扫描二维码查看更多博文:

可设置指定时间自动消失的 MessageBox实现相关推荐

  1. 无法更新计算机配置系统时间,电脑怎么设置系统时间自动更新

    有时由于系统某些故障导致时间错乱,还得我们自行去调,能不能设置为自动更新呢?下面由学习啦小编为你整理了电脑怎么设置自动更新时间的相关方法,希望对你有帮助! 电脑设置自动更新时间的方法 首先我们双击点击 ...

  2. 使用JAVASCRIPT实现弹出框,过一段时间自动消失

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! < ...

  3. [js倒计时]指定对应时间自动倒计时

    距离周一 8:30 剩下 xx:xx:xx 定时器 利用js设置一个时间倒计时标识牌,设计原理:将指定时间减掉当前时间,获得时间差,在利用数学方法分别获取指定的时.分.秒:使用定时器指定时间自动刷新. ...

  4. redis 存储数据不设置过期时间 会自动过期吗_Redis-数据淘汰策略持久化方式(RDB/AOF)Redis与Memcached区别...

    Redis与Memcached区别: 两者都是非关系型数据库.主要有以下不同: 数据类型: Memcached仅支持字符串类型. redis支持:String,List,set,zset,hash 可 ...

  5. Spring Boot缓存实战 Redis 设置有效时间和自动刷新缓存,时间支持在配置文件中配置

    问题描述 Spring Cache提供的@Cacheable注解不支持配置过期时间,还有缓存的自动刷新. 我们可以通过配置CacheManneg来配置默认的过期时间和针对每个缓存容器(value)单独 ...

  6. 设置让Windows每天在指定时间自动关机

    其实我们的电脑是可以设置每天在指定的时间点自动关机的,具体操作方法: 1.开打电脑,点击电脑系统左下角windows图标,选择"控制面板"并进入:如图 2.在控制面板界面找到&qu ...

  7. html中wmv播放不要自动播放,网页播放器 windowsmediaplay中控制从wmv的指定时间开始播放,指定时间停止播放...

    首页 > 网络编程 > 网页播放器 > 网页播放器 windowsmediaplay 网页播放器 windowsmediaplay中控制从wmv的指定时间开始播放,指定时间停止播放 ...

  8. C#简单的闹钟计时器,当用户设置完定时时间之后,如果到了设置的时间,该软件会自动进行提示。

    代码可直接运行 C#计时器在日常生活中经常用到,比如短跑比赛需要计时等.制作了一个简单的闹钟计时器,当用户设置完定时时间之后,如果到了设置的时间,该软件会自动进行提示. 界面搭建如下: 运行界面如下: ...

  9. Win8系统如何设置时间自动同步方法 电脑系统时间不能同步怎么设置

    Win8系统如何设置时间自动同步方法 电脑系统时间不能同步怎么设置 我们在使用电脑的时候,总是会遇到很多的电脑难题.当我们在遇到了需要在win8系统中对时间设置自动同步的时候,我们应该怎么操作呢?今天 ...

最新文章

  1. 献给那些怀揣IT梦想的北漂一族
  2. android java style_Android 在Java代码中设置style属性--使用代码创建ProgressBar对象
  3. 科学计算库Numpy——随机模块
  4. ICCV 2021 | 通过显式寻找物体的extremity区域加快DETR的收敛
  5. 计算机d盘被拒绝访问了怎么办,如果硬盘分区被拒绝访问或无法访问该怎么办?...
  6. 黑客马拉松 招募_举办第一次黑客马拉松的提示
  7. Kotlin入门(23)适配器的进阶表达
  8. 【rabbitmq】Queueingconsumer被废止后老代码如何做的解决方案
  9. Shell:shell中的循环语句
  10. Python学习之路3 - 字符串操作字典
  11. 关于Easy ui 操作 控件 disable 整理
  12. 了解一些FMS的基本概念
  13. 拓端tecdat|视频:R语言中的Stan概率编程MCMC采样的贝叶斯模型
  14. PHP将汉字转化为拼音
  15. 安装pyltp遇到的问题
  16. 移动硬盘提示“需要格式化”
  17. BUUCTF刷题记录(持续更新中~)
  18. html项目符号正方形,css如何添加列表项目符号
  19. vue调用服务器图片
  20. 7-3 降价提醒机器人 (10 分)小 T 想买一个玩具很久了,但价格有些高,他打算等便宜些再买。但天天盯着购物网站很麻烦,请你帮小 T 写一个降价提醒机器人,当玩具的当前价格比他设定的价格便宜时发

热门文章

  1. mysql 并发锁表_MySQL锁表的用法,防止并发情况下的重复数据
  2. 计算机开启时提示键盘错误,电脑开机出现异常提示keyboard not found的故障原因及解决方法_电脑故障...
  3. python装饰器实现aop_python中面向切片编程(AOP)和装饰器
  4. elementui table html,elementUI Table表格表头自定义
  5. Android百度地图悬浮窗样式,JS百度地图搜索悬浮窗功能
  6. 将获取到的JSONObject和JSONArray转换为实体对象
  7. 什么是微分?什么是导数?如何利用微分-导数方程求导数?
  8. 今年期末微积分考试试题:看看你能够在两个小时内做对几道题?
  9. 全国大学生智能车竞赛相关培训汇总
  10. mysql大表修改表名原理_MySQL修改大表工具pt-online-schema-change原理