VB指導(dǎo):生成autoOK對(duì)話框

字號(hào):

一些程序可能需要在沒(méi)有人干預(yù)的情況下自動(dòng)運(yùn)行。但是如果你需要讓用戶能夠更改程序默認(rèn)設(shè)置,或者需要讓程序使用默認(rèn)設(shè)置來(lái)運(yùn)行呢?
    實(shí)現(xiàn)這一想法的一個(gè)方法是使用我稱之為 auto-ok 的對(duì)話框。在程序運(yùn)行時(shí),對(duì)話框會(huì)彈出來(lái)讓用戶根據(jù)其需要更改選項(xiàng)。如果用戶在一段時(shí)間內(nèi)不響應(yīng)的話,對(duì)話框會(huì)自動(dòng)關(guān)閉自己,程序則繼續(xù)運(yùn)行。下面我將向你示范如何創(chuàng)建這類對(duì)話框。
    這種方法是基于 timer 控件實(shí)現(xiàn)的。具體實(shí)現(xiàn)方法如下:
    將一個(gè) timer 放到窗體上,將其 interval 屬性設(shè)置為1000(即1秒)。
    在窗體的 load 事件過(guò)程中,初始化一個(gè)time remaining 變量,將其值設(shè)置為對(duì)話框應(yīng)該保持打開(kāi)的總秒數(shù)。同時(shí),將 timer 控件的 enabled 屬性設(shè)計(jì)為 true 以使其開(kāi)始運(yùn)行。
    在 timer 控件的 timer 事件過(guò)程中,遞減time remaining 變量(每次減1)。另外,你還可以在對(duì)話框上顯示所剩時(shí)間。
    在time remaining 變量減到0時(shí),調(diào)用窗體的 ok 按鈕的 click 事件過(guò)程,關(guān)閉窗體繼續(xù)執(zhí)行程序。
    下面是一些示例代碼。在窗體一級(jí),給出以下聲明:
    const autoclose = 5
    dim timeleftas integer
    here's the form's load event procedure:
    下面是窗體的 load 事件過(guò)程:
    private sub form_load()
    timeleft = autoclose
    timer1.interval = 1000
    timer1.enabled = true
    end sub
    下面是 timer 事件過(guò)程:
    private sub timer1_timer()
    timeleft = timeleft - 1
    lbltimeremaining.caption = timeleft
    if timeleft = 0 then
     timer1.enabled = false
     call okbutton_click
    end if
    end sub
    在這個(gè)例子中,窗體的 ok 按鈕名為okbutton。這里沒(méi)有給出 ok 按鈕的事件過(guò)程中的代碼,里面應(yīng)該包含關(guān)閉對(duì)話框以及繼續(xù)執(zhí)行程序所需的代碼。
    一個(gè)可選特性是使用窗體上任何控件的 change 事件過(guò)程來(lái)關(guān)閉定時(shí)器。這樣在用戶在對(duì)窗體上的任何控件進(jìn)行動(dòng)作時(shí)會(huì)取消定時(shí)器遞減。