Win2000 VB.NET2003です。
まずメニュー画面があり、メニュー画面のボタンを押すと
Form1をモーダルで表示します。
dim frm1 as new Form1
frm.ShowDialog
次にForm1のActivatedイベントの中でForm2をモードレスで表示します
Private Sub Form1_Activated(Byval sender As Object ...(略)
dim frm2 as new frm2
frm2.Owner Me
frm2.Show
End Sub
すると表示されたForm2が何も操作を受け付けてくれなくなってしまいます。
モーダルのフォームのActivatedイベントで呼ばれたモードレスなフォームは
操作を受け付けなくなってしまうのでしょうか?
メニューのボタンが押されたらForm1をForm2の2つの画面を表示し、
かつForm1を親、Form2を子としたいのですが、どうすればよいでしょうか。
アドバイスをお願い致します。
結局モーダルが存在してるんだもの
ふしぎではない。
しかしForm1のActivatedイベント以外、
例えばButton1のClickイベントでForm2を呼び出す処理を書いた場合、
きちんと操作を受け付けてくれるのですが。
Activatedイベントに書くことがいけないのでしょうか?
解答が付かないようなので。
>Activatedイベントに書くことがいけないのでしょうか?
とりあえず思い当たる事があるなら自分で他のイベントを利用しテストしてみる。
>例えばButton1のClickイベントでForm2を呼び出す処理を書いた場合、
>きちんと操作を受け付けてくれるのですが。
違う動作が確認できてるのなら、まずはヘルプで2つのイベントに
関して隅々まで目を通して何か注意事項が書かれてないかチェックする。
Button1のClickイベントより前に起こっている動作(New とか Load とか…)
で何かが変わらないか調査する。モーダルとモードレスの説明に注意事項が
書かれてないかチェックする...etc.
自力で調査できる部分はいくらでも残ってるよ。
特攻隊長まるるう様、返答ありがとうございます。
残念ながらヘルプを見ても
New,Load時の内容を比較してみても違いはわかりませんでした。
しかし、メニューからForm1を呼び出す際にモードレスで呼び出すことで
一応回避はしましたので解決とさせていただきます。
この件に関しては引き続き調べていこうとおもいます。
ありがとうございました。
ツイート | ![]() |