モーダルのフォームからモードレスのフォームを呼ぶには?

解決


たまねぎ  2005-06-16 00:35:35  No: 122663

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を子としたいのですが、どうすればよいでしょうか。
アドバイスをお願い致します。


香ばしい  2005-06-16 00:47:51  No: 122664

結局モーダルが存在してるんだもの
ふしぎではない。


たまねぎ  2005-06-16 01:29:05  No: 122665

しかしForm1のActivatedイベント以外、
例えばButton1のClickイベントでForm2を呼び出す処理を書いた場合、
きちんと操作を受け付けてくれるのですが。
Activatedイベントに書くことがいけないのでしょうか?


特攻隊長まるるう  2005-06-17 21:25:59  No: 122666

解答が付かないようなので。

>Activatedイベントに書くことがいけないのでしょうか?
とりあえず思い当たる事があるなら自分で他のイベントを利用しテストしてみる。

>例えばButton1のClickイベントでForm2を呼び出す処理を書いた場合、
>きちんと操作を受け付けてくれるのですが。
違う動作が確認できてるのなら、まずはヘルプで2つのイベントに
関して隅々まで目を通して何か注意事項が書かれてないかチェックする。
Button1のClickイベントより前に起こっている動作(New とか Load とか…)
で何かが変わらないか調査する。モーダルとモードレスの説明に注意事項が
書かれてないかチェックする...etc.

自力で調査できる部分はいくらでも残ってるよ。


たまねぎ  2005-06-18 21:02:57  No: 122667

特攻隊長まるるう様、返答ありがとうございます。
残念ながらヘルプを見ても 
New,Load時の内容を比較してみても違いはわかりませんでした。

しかし、メニューからForm1を呼び出す際にモードレスで呼び出すことで
一応回避はしましたので解決とさせていただきます。

この件に関しては引き続き調べていこうとおもいます。
ありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加