tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
[ツリー表示へ]  [ワード検索]  [Home]

タイトル Re^3: form1からform2を開いたときに、form1を閉じたい
投稿日: 2005/11/24(Thu) 09:49
投稿者なおこ(・∀・)
お世話になります。

>  上記の内容で試してみたのですが、Form2を閉じたときにForm1が残っているので、
> うまく終了することができません。
> また、Form2からForm3を表示したりもします。
>
> Form1からForm2を表示してForm1を非表示にせずに閉じることは出来ないのでしょうか。

色々方法はあるかと思いますが、
例えば、
こんな方法とか
hhttp://dobon.net/cgi-bin/vbbbs/cbbs.cgi?mode=al2&namber=13820&rev=&no=0
こんな方法で、アプリケーションの中で使うFormをコレクションで管理するとか、
hhttp://support.microsoft.com/default.aspx?scid=kb;ja;JP308537
↓こんな方法とかありますが。
 (↓のコードは例外処理とかオブジェクトの破棄を保障する事とか
  一切考慮していませんのであしからず)

■Form1(スタートアップ)
Public Class Form1
  Inherits System.Windows.Forms.Form

#Region " Windows フォーム デザイナで生成されたコード "
'略
#End Region

  Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _
  Handles Button1.Click
    Dim f2 As Form2
    f2 = New Form2(Me)
    f2.Show()
    Me.Hide()
  End Sub
End Class

■Form2
Public Class Form2
  Inherits System.Windows.Forms.Form

#Region " Windows フォーム デザイナで生成されたコード "

  Private Sub New()
    MyBase.New()

    ' この呼び出しは Windows フォーム デザイナで必要です。
    InitializeComponent()

    ' InitializeComponent() 呼び出しの後に初期化を追加します。

  End Sub
'略
#End Region

  Private m_owner As Form

  Public Sub New(ByVal owner As Form)
    Me.New()
    Me.m_owner = owner
  End Sub

  Private Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) _
  Handles Button1.Click
    Me.Close()
    Me.Dispose()
    If MessageBox.Show("アプリケーションを終了しますか", _
               "", _
               MessageBoxButtons.YesNo, _
               MessageBoxIcon.Question) = DialogResult.Yes Then
      If Not Me.m_owner Is Nothing Then
        Me.m_owner.Close()
        Me.m_owner.Dispose()
        Application.Exit()
      End If
    Else
      Me.m_owner.Show()
    End If
  End Sub
End Class

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。