VB6.0用掲示板の過去のログ(No.2)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [管理用]

投稿日: 2005/04/21(Thu) 16:14
投稿者しげちー
Eメール
URL
タイトルRe^2: DoEventsについて

回答頂きありがとうございます。

> 投稿された説明だけでは意味(理由)が解りません。
分かりにくい説明だったようで申し訳ありません。

> 貴方の言っている事象を再現できるコードを投稿されない限り、これ以上は判断できません。
下記がコードです

Private Sub CommandButton1_Click()
    Dim i As Integer
    
    CommandButton1.Enabled = False
    CommandButton2.Enabled = False
    
    For i = 1 To 10000
        Me.Cells(i, 1) = 1
    Next
    
    DoEvents
    
    MsgBox "終了"
    CommandButton1.Enabled = True
    CommandButton2.Enabled = True
End Sub

Private Sub CommandButton2_Click()
    Me.Cells(1, 1) = ""
End Sub

動作として、CommandButton1を押した際に
CommandButton1、CommandButton2共にEnabledがFalse表記に描画される
…のつもりなのですが
実際にはCommandButton2のEnabled表記はずっとTrueのように見えています。

> しいて言うなら貴方のDoEventsの使い方がそのようになっているからです。
> プログラムで占有していた制御をオペレーティング システムに渡すフロー制御関数です。
> 従って、DoEvents を実行した時だけしか処理されません。
この書き方では描画がされないのは当たり前なのでしょうか!?


- 関連一覧ツリー (★ をクリックするとツリー全体を一括表示します)

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- VBレスキュー(花ちゃん) - - Web Forum -