- PR -

スタートアップフォームの参照方法

投稿者投稿内容
まさ1973
会議室デビュー日: 2004/07/27
投稿数: 11
投稿日時: 2004-07-27 17:05
お世話になります。
まさ1973です。

1.まずスタートアップフォームに例えばForm1という名前のフォームを指定します。
2.そのフォームをMe.hideで非表示にします。
3.2で非表示にしたフォームを別フォームから表示させたいのですが、スタートアップフォームを指定する方法が分かりません。同一フォームからであれば、
Meで参照できるのですが・・・。

新たに
Dim fForm1 As New Form1
fForm1.Show
と指定すれば同じフォームを開くことはできますが、
1で開いたフォームではないですよね?

どうぞよろしくお願いします。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2004-07-27 17:34
 どうにかして「別フォーム」に憶えさせるしかありません。
まさ1973
会議室デビュー日: 2004/07/27
投稿数: 11
投稿日時: 2004-07-27 17:44
お返信ありがとうございます。
まさ1973です。

やはりそうなんですか。
でも、それはスタートアップフォームに限ることでしょうから、
スタートアップフォームから前の書き込み1.のForm1を呼び出して
スタートアップフォームを非表示にするということはできませんでしょうか?
識者の方々、どうぞよろしくお願いします。

まさ1973
会議室デビュー日: 2004/07/27
投稿数: 11
投稿日時: 2004-07-27 17:57
お世話になります。
まさ1973です。

前の書き込みのようにスタートアップフォームから
Form1を表示し、
スタートアップフォームの
VisibleをFalseに設定したり、Hideしても無効なので
フォームを透過してみたり、
フォームサイズを0,0に設定しても
スタートアップフォームがわずかに残って表示されます。

他にいい方法はありませんか?
引き続き識者のみなさま、どうぞよろしくお願いします。
まさ1973
会議室デビュー日: 2004/07/27
投稿数: 11
投稿日時: 2004-07-27 18:07
お世話になります。
まさ1973です。

スタートアップフォームがわずかに残って表示されるのは
スタートアップフォームで呼び出したフォームの後ろに隠せばいいとは思うのですが、
タスクバーに表示されるスタートアップフォームが気になります。
スタートアップフォームのタスクをタスクバーに表示させない方法、あるいは回避方法はありますか?

どうぞよろしくお願いします。

Micky
大ベテラン
会議室デビュー日: 2002/09/04
投稿数: 137
投稿日時: 2004-07-27 18:20
Mickyでございます。
いつもお世話になっております。

えっと、ちょっと試してみました(^^;

2つのフォームを制御するコントロールクラスを
作るのはいかがでしょうか?

いわゆる「MVCパターン」もどきって感じです。

スタートアップフォームから、このコントロールクラスの
次画面表示メソッドを呼び出します。
そうすると、このクラスはForm1をHideして、Form2を表示します。

Form2クラスをコントロールクラスが生成するときには
次にForm1を表示するときの為にコントロールクラスのインスタンス
を渡しておきます。

Form2は必要になった所でこのコントロールクラスの「From1再度表示」メソッド
を呼ぶといった仕掛けにしておきます。

コントロールクラスをForm1で生成するときに
Form1のインスタンスを渡す事になります。

ちょっとやってみただけなのですが、御希望の仕様は満たしている
動作をしていると思いました。

コントロールクラス経由で、Form1のインスタンスをForm2に教えちゃう
っても単純に出来そうですが、コントロールクラスがコントロールする
って意味合いを出したかったので、Form2へはコントロールクラスの
インスタンスを渡すようにしました。(^^;

ただこれだけだと、どんどんWindowが増殖してしまうので、
二回目に表示された時の制御とかは考えないといけないですね。
ゆうじゅん
ぬし
会議室デビュー日: 2004/01/16
投稿数: 347
投稿日時: 2004-07-27 18:23
引用:


新たに
Dim fForm1 As New Form1
fForm1.Show




ここの部分で新たなForm1になってしまうのであれば
NewではなくMeを設定するばOKです。

それと
>どうにかして「別フォーム」に憶えさせるしかありません。
これを組み合わせれば実現できると思いますよ

Qoo
大ベテラン
会議室デビュー日: 2003/04/08
投稿数: 121
投稿日時: 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

スキルアップ/キャリアアップ(JOB@IT)