打印本文 打印本文  关闭窗口 关闭窗口  
VB指导:生成autoOK对话框
作者:佚名  文章来源:不详  点击数  更新时间:2008/4/18 14:48:38  文章录入:杜斌  责任编辑:杜斌

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

  实现这一想法的一个方法是使用我称之为 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 事件过程来关闭定时器。这样在用户在对窗体上的任何控件进行动作时会取消定时器递减。

打印本文 打印本文  关闭窗口 关闭窗口