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