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

投稿日: 2004/06/29(Tue) 16:18
投稿者ゆーみん
Eメール
URL
タイトルプログレスバーを置いたフォームのモーダル

すいません、お願い致します。

ある親フォーム(Form1)で「実行ボタン」をクリックすると
進捗状況表示フォーム(Form2)を表示させる といった
ことをしたく、下記のようなコードをForm1側に書いてます。
Form2にはプログレスバーを置いてます。

--------------Form1側に記述----------------------
With Form2
    .ProgressBar1.Min = 0
    .ProgressBar1.Max = 50000
    .Show (★1)
Dim lngCount As Long
    For lngCount = .ProgressBar1.Min To .ProgressBar1.Max
        .ProgressBar1.Value = lngCount
        DoEvents (★2)
    Next lngCount
End With

Unload Form2
MsgBox "終了しました"
----------------------------------------------
で、行ないたいことは、Form2が表示されている間は、
Form1にある他のボタンをクリックしたりと「他の処理」
をさせないようにしたいのです。

(案1)
★1に「vbModal」を追加

勿論「Form2」が閉じるまで、Form1の操作は不可になるので
良いのですが、肝心のプログレスバーまで動かなくなります。

(案2)
★1に「vbModal」の指定をせずに、★2に doeventsを指定しない

「Form2」が閉じるまで、Form1の操作は不可になりOKで、
プログレスバーも動いてOKなのですが、
「Form2」が半透明のような感じで表示され、Form2に配置した
ラベル等の文字が表示されない。

(案3)
★1に「vbModal」の指定をせずに、★2に doeventsを入れる

Form2も半透明ではなく、配置したラベルも表示されOKで、
プログレスバーも動いてOKなのですが、親フォームのForm1で
操作が出来てしまいNGです。

このような「進捗状況」を「別フォーム」に表示するといった
ことを実施する場合、どのようにするのが、一般的なのでしょうか?
プログレスバー自体使用したことがなく、根本的に可笑しなことを
言っているかもしれませんが、ご容赦ください。


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

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

- Web Forum -