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がアクティブとなり、この現象が出ません。
よろしくお願いします。
Win7+VB2008EE でも同じようになりますね。
正式にはMSに問い合わせるのが良いと思いますが、とりあえずの回避策
としては
Form2のボタンには
Me.Enabled = false
Dim FFF As New Form3
FFF.ShowDialog(Me)
Me.Enabled = true
みたいにすると希望通りになりますよ。
早速のご回答ありがとうございます。
Win7+VB2008EEでも再現しましたか。仕様でしょうか。
一抹の不安があり、正統な解決策があるのではと思い、質問させて頂きました。
やはり、Enabled制御が王道でしょうか。
背中を押していただきありがとうございます。
ありがとうございました。
Enabled制御で対応します。