生成 auto-OK 对话框

ZDNet软件频道 时间:2005-01-07 作者:Builder.com |  我要评论()
本文关键词:vbtips
一些程序可能需要在没有人干预的情况下自动运行。但是如果你需要让用户能够更改程序默认设置,或者需要让程序使用默认设置来运行呢?
本文译自Builder.com,未经许可请勿转载

一些程序可能需要在没有人干预的情况下自动运行。但是如果你需要让用户能够更改程序默认设置,或者需要让程序使用默认设置来运行呢?

实现这一想法的一个方法是使用我称之为 auto-OK 的对话框。在程序运行时,对话框会弹出来让用户根据其需要更改选项。如果用户在一段时间内不响应的话,对话框会自动关闭自己,程序则继续运行。下面我将向你示范如何创建这类对话框。

这种方法是基于 Timer 控件实现的。具体实现方法如下:

  1. 将一个 timer 放到窗体上,将其 Interval 属性设置为1000(即1秒)。
  2. 在窗体的 Load 事件过程中,初始化一个Time Remaining 变量,将其值设置为对话框应该保持打开的总秒数。同时,将 Timer 控件的 Enabled 属性设计为 True 以使其开始运行。
  3. 在 Timer 控件的 Timer 事件过程中,递减Time Remaining 变量(每次减1)。另外,你还可以在对话框上显示所剩时间。
  4. 在Time Remaining 变量减到0时,调用窗体的 OK 按钮的 Click 事件过程,关闭窗体继续执行程序。

下面是一些示例代码。在窗体一级,给出以下声明:

Const AUTOCLOSE = 5
Dim TimeLeftAs Integer

Here's the form's Load event procedure:

下面是窗体的 Load 事件过程:

Private Sub Form_Load()

TimeLeft = AUTOCLOSE
Timer1.Interval = 1000
Timer1.Enabled = True

End Sub

下面是 Timer 事件过程:

Private Sub Timer1_Timer()

TimeLeft = TimeLeft - 1
lblTimeRemaining.Caption = TimeLeft
If TimeLeft = 0 Then
    Timer1.Enabled = False
    Call OKButton_Click
End If

End Sub

在这个例子中,窗体的 OK 按钮名为OKButton。这里没有给出 OK 按钮的事件过程中的代码,里面应该包含关闭对话框以及继续执行程序所需的代码。

一个可选特性是使用窗体上任何控件的 Change 事件过程来关闭定时器。这样在用户在对窗体上的任何控件进行动作时会取消定时器递减。


Peter Aitken自从 Visual Basic 1.0 以来就一直在使用 Visual Basic 编程。他编写过很多关于 Visual Basic 以及其他计算机和编程的书以及杂志文章。


责任编辑:李宁

欢迎评论投稿

百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134