- - PR -
スタートアップフォームの参照方法
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2004-07-27 17:05
お世話になります。
まさ1973です。 1.まずスタートアップフォームに例えばForm1という名前のフォームを指定します。 2.そのフォームをMe.hideで非表示にします。 3.2で非表示にしたフォームを別フォームから表示させたいのですが、スタートアップフォームを指定する方法が分かりません。同一フォームからであれば、 Meで参照できるのですが・・・。 新たに Dim fForm1 As New Form1 fForm1.Show と指定すれば同じフォームを開くことはできますが、 1で開いたフォームではないですよね? どうぞよろしくお願いします。 | ||||
|
投稿日時: 2004-07-27 17:34
どうにかして「別フォーム」に憶えさせるしかありません。
| ||||
|
投稿日時: 2004-07-27 17:44
お返信ありがとうございます。
まさ1973です。 やはりそうなんですか。 でも、それはスタートアップフォームに限ることでしょうから、 スタートアップフォームから前の書き込み1.のForm1を呼び出して スタートアップフォームを非表示にするということはできませんでしょうか? 識者の方々、どうぞよろしくお願いします。 | ||||
|
投稿日時: 2004-07-27 17:57
お世話になります。
まさ1973です。 前の書き込みのようにスタートアップフォームから Form1を表示し、 スタートアップフォームの VisibleをFalseに設定したり、Hideしても無効なので フォームを透過してみたり、 フォームサイズを0,0に設定しても スタートアップフォームがわずかに残って表示されます。 他にいい方法はありませんか? 引き続き識者のみなさま、どうぞよろしくお願いします。 | ||||
|
投稿日時: 2004-07-27 18:07
お世話になります。
まさ1973です。 スタートアップフォームがわずかに残って表示されるのは スタートアップフォームで呼び出したフォームの後ろに隠せばいいとは思うのですが、 タスクバーに表示されるスタートアップフォームが気になります。 スタートアップフォームのタスクをタスクバーに表示させない方法、あるいは回避方法はありますか? どうぞよろしくお願いします。 | ||||
|
投稿日時: 2004-07-27 18:20
Mickyでございます。
いつもお世話になっております。 えっと、ちょっと試してみました(^^; 2つのフォームを制御するコントロールクラスを 作るのはいかがでしょうか? いわゆる「MVCパターン」もどきって感じです。 スタートアップフォームから、このコントロールクラスの 次画面表示メソッドを呼び出します。 そうすると、このクラスはForm1をHideして、Form2を表示します。 Form2クラスをコントロールクラスが生成するときには 次にForm1を表示するときの為にコントロールクラスのインスタンス を渡しておきます。 Form2は必要になった所でこのコントロールクラスの「From1再度表示」メソッド を呼ぶといった仕掛けにしておきます。 コントロールクラスをForm1で生成するときに Form1のインスタンスを渡す事になります。 ちょっとやってみただけなのですが、御希望の仕様は満たしている 動作をしていると思いました。 コントロールクラス経由で、Form1のインスタンスをForm2に教えちゃう っても単純に出来そうですが、コントロールクラスがコントロールする って意味合いを出したかったので、Form2へはコントロールクラスの インスタンスを渡すようにしました。(^^; ただこれだけだと、どんどんWindowが増殖してしまうので、 二回目に表示された時の制御とかは考えないといけないですね。 | ||||
|
投稿日時: 2004-07-27 18:23
ここの部分で新たなForm1になってしまうのであれば NewではなくMeを設定するばOKです。 それと >どうにかして「別フォーム」に憶えさせるしかありません。 これを組み合わせれば実現できると思いますよ | ||||
|
投稿日時: 2004-07-27 18:28
こんにちは。
スタートアップフォームを MainForm、別のフォームを SubForm とします。 SubForm はMainFormから表示したのだとすれば、SubForm側に変数を持たせて MainFormから表示する際にMainForm自身を格納すればよいのかな? と思いますが。。。試してなくてすみませんが。。。 SubForm側 Dim fMainForm MainForm側 Dim fSubForm As New SubForm fSubForm.fMainForm = Me <--- fSubForm.Show |