前几天经常看到有朋友说想使用可以定时关闭而无需用户点击的对话框,有的朋友给出了调用API 的做法。这里我再用窗体来实现一个可以定时自动关闭的对话框。
首先创建一个工程,将主窗体命名为MainForm ,在其上添加一个按钮,命名为btnShowDialog ,Text 设为“ 显示自定义定时关闭的对话框”。然后添加一个窗体,属性设置如下:
Name | AutoClosedMessageBox |
FormBorderStyle | FixedSingle |
MaximizeBox | False |
MinimizeBox | False |
Size | 330, 150 |
在窗体之上添加一个Timer 控件,命名为tmrAutoClosed ;再添加一个Label ,命名为lblShowTip ,还要将ShowInTaskbar属性设为false,这样这个对话框就不会在任务栏中显示了,其他属性保持默认值。
另外,在AutoClosedMessageBox窗体中添加一个Label控件,将它的AutoSize属性设置为true。
在窗体AutoClosedMessageBox 的设计器界面下,按F7 查看代码,首先在类中添加一个AutoClosedMessageBox 类型的静态成员ACMessageBox ,用来保存对话框实例;同时再创建一个静态的Show 方法,在方法中控制信息的呈现,详见代码:
在tmrAutoClosed 的Tick 事件处理程序中添加以下代码:
然后在主窗体的btnShowDialog 按钮的Click 事件处理程序中进行对可定时关闭对话框的调用:
AutoClosedMessageBox.Show(" 通过窗体模拟的方式创建一个可以定义关闭时间的自动对话框,无需用户点击确定。", " 提示", 15, 2000);
我在这里仅仅用窗体来简单地模拟了一个可定时关闭的对话框,可以像使用MessageBox 类一样来使用这个AutoClosedMessageBox 以及它的Show 方法,大家还可以自己扩展或重载这个方法,比如提供选择要显式的提示图标的类型的参数(可以通过PictureBox 控件来实现)。来看一下截图:
大家可以在此处下载源代码 : 可定时自动关闭的对话框