[リストへもどる]   [VBレスキュー(花ちゃん)]
一括表示

投稿時間:2006/07/12(Wed) 20:07
投稿者名:カーツ
Eメール:
URL :
タイトル:
Enable=False中のClickイベント
コマンドボタンのクリックイベントの中でEnable=Falseに設定し
処理を行い、終了後にEnable=Trueに戻しているのですが。

コマンドボタンを連続クリックした場合、Enable=Falseにして
いるにもかかわらずクリックイベントがバッファーに蓄積され、
繰り返しCommand1_Clickに入ります。
(VBってこんな仕様でしたっけ?ライブラリのせい?)
Enable=Falseの間のクリックイベントを無視するには
どうしたらよいでしょうか?

Private Sub Command1_Click()
    Screen.MousePointer = vbHourglass
    Command1.Enabled = False
    Me.Refresh

    '処理

    Command1.Enabled = True
    Me.Refresh
    Command1.SetFocus
    Screen.MousePointer = vbDefault
End Sub

投稿時間:2006/07/12(Wed) 21:45
投稿者名:LESIA
Eメール:
URL :
タイトル:
Re: Enable=False中のClickイベント
>     Command1.Enabled = False
の後に、DoEventsを入れてみてはどうでしょうか?

投稿時間:2006/07/12(Wed) 22:06
投稿者名:カーツ
Eメール:
URL :
タイトル:
Re^2: Enable=False中のClickイベント
LESIA 様
早速のご返答有難う御座います。

ご指摘の件、自分も試して見たのですが
変わりませんでした。

> >     Command1.Enabled = False
> の後に、DoEventsを入れてみてはどうでしょうか?

投稿時間:2006/07/12(Wed) 22:55
投稿者名:魔界の仮面弁士
Eメール:
URL :
タイトル:
Re^2: Enable=False中のClickイベント
> >     Command1.Enabled = False
> の後に、DoEventsを入れてみてはどうでしょうか?

DoEvents を入れるとすれば、『False にした直後』では無く、『True に戻す直前』なのでは。

投稿時間:2006/07/13(Thu) 09:46
投稿者名:カーツ
Eメール:
URL :
タイトル:
Re^3: Enable=False中のClickイベント
そうですね、時間の掛かる処理が終わって。
.Enable = True に戻す間にですね。

自分も帰りの電車の中で気が付いて『アッ、アァー』と
声を出してしまいそうになりました。

LESIA様、魔界の仮面弁士様 有難う御座いました。

> > >     Command1.Enabled = False
> > の後に、DoEventsを入れてみてはどうでしょうか?
>
> DoEvents を入れるとすれば、『False にした直後』では無く、『True に戻す直前』なのでは。