モーダル表示時に親フォームのボタンを押下できないようにするには?

解決


ハーマイオニー  2009-11-13 10:59:11  No: 142829  IP: [192.*.*.*]

VB2005でプログラムを作成しています。
Form1のボタンからForm2を表示し、Form2のボタンからForm3を表示するちょいプロを作りました。
Form1のボタンには
 Dim FFF As New Form2
 FFF.ShowDialog(Me)
Form2のボタンには
 Dim FFF As New Form3
 FFF.ShowDialog(Me)
としています。
このときタスクバーにはForm1、Form2、Form3が表示されています。
タスクバーのForm2をクリックするとモーダル表示であるにもかかわらず、
Form2がアクティブタイトルバーとなり、その状態で
Enterキーを連打するとForm2のボタンを押した扱いとなり、
ソースのとおりForm3のインスタンスが作成され、Form3がどんどん表示され困っています。
本来、カレントはForm3となり、Form2はプロテクトがかかった状態に
なるはずでは?
タスクバーのForm1を選択するとForm3がアクティブとなり、この現象が出ません。

よろしくお願いします。

編集 削除
GOD  2009-11-13 11:18:00  No: 142830  IP: [192.*.*.*]

Win7+VB2008EE でも同じようになりますね。
正式にはMSに問い合わせるのが良いと思いますが、とりあえずの回避策
としては
Form2のボタンには
 Me.Enabled = false
 Dim FFF As New Form3
 FFF.ShowDialog(Me)
 Me.Enabled = true
みたいにすると希望通りになりますよ。

編集 削除
ハーマイオニー  2009-11-13 12:25:43  No: 142831  IP: [192.*.*.*]

早速のご回答ありがとうございます。
Win7+VB2008EEでも再現しましたか。仕様でしょうか。
一抹の不安があり、正統な解決策があるのではと思い、質問させて頂きました。
やはり、Enabled制御が王道でしょうか。
背中を押していただきありがとうございます。

編集 削除
ハーマイオニー  2009-11-16 15:21:11  No: 142832  IP: [192.*.*.*]

ありがとうございました。
Enabled制御で対応します。

編集 削除