掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
ソリュージョン内のフォームを行き来したい (ID:145530)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
特攻隊長まるるうさん・・・ 2008/12/19(金) 13:04:59 のレス ちゃんと追加しています。しかし、 Public Class Class1 Inherits ApplicationContext Public Shared Sub Main() Application.Run(New Class1) End Sub Private Sub Form_ExitThread() Dim i As Integer Me.mClosingCancel = False '全てのフォームを閉じる With Me.mForms For i = 0 To .Count - 1 DirectCast(.Item(i), Form).Close() .Item(i) = Nothing Next End With 'スレッド終了 MyBase.ExitThread() End Sub Private Sub Form_FormChange(ByRef sender As Form, ByVal TargetFormNum As Class1.FormsNum) sender.Hide() 'イベントを起こしたフォームを非表示にする DirectCast(Me.mForms(TargetFormNum), Form).Show() '移動後のフォームを表示 End Sub Private Sub Form_Closing(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) If mClosingCancel Then e.Cancel = True 'フォームが閉じるのをキャンセル MessageBox.Show("『終了』ボタンで終了してください。") End If End Sub Public Enum FormsNum Form1 Form2 Form3 End Enum Private mForms As ArrayList Private mClosingCancel As Boolean Private Sub New() Dim F1 As New Form1 'プログラム起動時に全てのインスタンス生成 Dim F2 As New Form2 Dim F3 As New Form3 'プログラム終了イベント AddHandler F1.ExitThread, AddressOf Form_ExitThread AddHandler F2.ExitThread, AddressOf Form_ExitThread AddHandler F3.ExitThread, AddressOf Form_ExitThread '表示フォーム変更イベント AddHandler F1.FormChange, AddressOf Form_FormChange AddHandler F2.FormChange, AddressOf Form_FormChange AddHandler F3.FormChange, AddressOf Form_FormChange 'Closing イベント AddHandler F1.Closing, AddressOf Form_Closing AddHandler F2.Closing, AddressOf Form_Closing AddHandler F3.Closing, AddressOf Form_Closing Me.mForms = New ArrayList(New Form() {F1, F2, F3}) Me.mClosingCancel = True F1.Show() End Sub End Class において型ApplicationContextやForm、Form1,2,3が宣言されていないエラーと名前Applicationが宣言されてないエラーが出ます。 2008/12/19(金) 13:08:52 のレス そのまま追加すると名前空間のステートメントが無効です、とエラーになります。かといって Public Event FormChange(ByRef sender As Form, ByVal TargetFormNum As Class1.FormsNum) Public Event ExitThread() を Public Class Form1 Inherits System.Windows.Forms.Form の後に追加すると型Class1.FormsNumは宣言されていないと言われエラーに・・・。 さらにビルドを行うと 'Sub Main' が、'ソリューション名.Form1' に見つかりませんでした。 とのエラーに。何故かForm2,3に出てて、Name名がForm2,3にもかかわらずName名がForm1とされています。 追加したのにもかかわらず宣言されていないということは、フォーム間で行き来はできないと言うことでしょうか?例えばフォーム1から2や3へ、フォーム2から1、フォーム3から1など・・・ 出来るのならどう対処すればいいのでしょうか。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.