- PR -

フォーム間の遷移

1
投稿者投稿内容
虎猫
常連さん
会議室デビュー日: 2004/05/27
投稿数: 25
投稿日時: 2004-11-21 21:56
寅猫と申します。

以下のフォーム間遷移を実装しようと考えているのですが、よい方法が思いつきません。

@Form1のボタンでForm2を呼び出します。
 この時、モーダルでの起動ではなくモードレスでの起動とします。
 それと同時に Form1 のTextBoxを ReadOnly にButtonを非活性状態とします。
AForm2の戻るボタンでForm2をクローズし、Form1をアクティブにします。
 その時にForm1の各コントロールを通常状態に戻します。

純粋にShowDialogでForm2を呼び出せばよいと思われるかもしれませんが、あくまで
「呼び出し元のフォームをさわれる(編集は不可)」状態でなければなりません。
また、タスクバーにForm1及びForm2両方とも存在している必要があるのです。

いろいろと試したのですが、Form2の戻るボタンでForm2をクローズした事をForm1の
方で判別して各コントロールを通常状態に復帰させればよいと思うのですが、どう
すればよいか分かりません。

WithEvents とかを使えば Form1 で Form2 がクローズした事を受けての動作を指定
できる??とか考えていますが、どうも初心者なのでどうもこうも行きません。

お助けを!
たけだ
会議室デビュー日: 2004/09/09
投稿数: 7
投稿日時: 2004-11-22 00:16
こんばんは。

Form1のボタンクリックで
Dim f2 As New Form2
AddHandler f2.Closed, AddressOf f2_Closed
f2.Show()
としておいて、

Private Sub f2_Closed(ByVal sender As Object, ByVal e As System.EventArgs)
Form2が閉じたときにしたい処理を書く
End Sub

といった感じではどうでしょうか?
VB.NETは、あまり使ったこと無いので、自信がありませんが...
burton999
ぬし
会議室デビュー日: 2003/10/06
投稿数: 898
お住まい・勤務地: 東京
投稿日時: 2004-11-22 00:18
Windowsアプリですか?それともWebアプリですか?
虎猫
常連さん
会議室デビュー日: 2004/05/27
投稿数: 25
投稿日時: 2004-11-22 00:41
すいません.言葉足らずでした、Windowsアプリです.
Jubei
ぬし
会議室デビュー日: 2002/03/02
投稿数: 830
お住まい・勤務地: 関西
投稿日時: 2004-11-22 03:23
諸農です。

Form2からForm1のインスタンスを操作できるような仕掛けをForm2に加えれば、
Form2で発生するなんらかのイベントハンドラ内で対処できますね。

ただ、戻るボタンのクリックイベントだけで対応してしまうと、
Form2の右上の×を押されてWindowが閉じられた場合に対応できなくなるので、
たけださんがコメントされているように、戻るボタンはForm2を閉じるメソッド
の実行を行い、Form2のCloseイベントでForm1を操作するようにすればいいので
はないでしょうか。


_________________
諸農和岳
Powered by Turbo Delphi & Microsoft Visual Studio 2005

十兵衛@わんくま同盟
http://blogs.wankuma.com/jubei/
虎猫
常連さん
会議室デビュー日: 2004/05/27
投稿数: 25
投稿日時: 2004-11-23 13:18
たけだ様
burton999様
Jubei様

 ありがとうございました.
 たけだ様の教えてくださった方法でうまく制御することができました.
 助かりました〜!!!
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2004-11-23 19:15
ちなみに、私の投稿のしたの「www」というリンクから私のホームページに行き、「.NET FrameworkおよびVS.NETに関するTips」→「プログラムサンプル」の、「他のDLLにあるフォームを表示する」に、サンプルソリューションがあります。
_________________
1

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