tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトル既存フォームがない場合にのみフォームを起動する。
記事No3323
投稿日: 2006/03/18(Sat) 23:13
投稿者ひろのしま
[OSのVer]:Windows XP   [VBのVer]:VB.NET   2003
恐れ入ります。AccessVBAで使用しているプログラムの中で、
Private Sub msub該当フォーム起動_Click()
'該当フォームが起動していない場合にのみ起動する。
If CurrentProject.AllForms("該当フォーム").Isloaded=false Then
   Docmd.OpenForm "該当フォーム"
Else
   MessageBox.Show("既にフォームが開いています。","フォーム起動制御")
End If
End Sub
というプログラムを使用していました。
これと同様のプログラムをVB.NETで行いたいのです。
下記のイベントプロシージャに必要なステートメントを教えて下さい。
よろしくお願いします。

Private Sub cmd_該当フォーム起動_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles cmd_該当フォーム起動.Click
    '該当フォームが起動していない場合にのみ起動する。
        If (ここに必要なステートメントは?) Then
            Dim objFm_該当フォーム As New Fm_該当フォーム()
            Fm_該当フォーム.Show()
        End If
    End Sub

[ツリー表示へ]
タイトルRe: 既存フォームがない場合にのみフォームを起動する。
記事No3324
投稿日: 2006/03/19(Sun) 00:59
投稿者ひろのしま
> Private Sub cmd_該当フォーム起動_Click(ByVal sender As System.Object, ByVal e As
> System.EventArgs) Handles cmd_該当フォーム起動.Click
>     '該当フォームが起動していない場合にのみ起動する。
>         If (ここに必要なステートメントは?) Then
>             Dim objFm_該当フォーム As New Fm_該当フォーム()
>             Fm_該当フォーム.Show()
>         End If
>     End Sub
すみません。修正します。
(誤)Fm_該当フォーム.Show()
(正)objFm_該当フォーム.Show
です。よろしくお願いします。

[ツリー表示へ]
タイトルRe^2: 既存フォームがない場合にのみフォームを起動する。
記事No3325
投稿日: 2006/03/19(Sun) 12:33
投稿者YAS
ひろのしまさん,こんにちは。
こんな感じでしょうか?(最善の方法とは言えないと思いますが,参考まで)

    Dim f As Form
    Private Sub Button1_Click(ByVal sender As System.Object, _
                              ByVal e As System.EventArgs) _
                              Handles Button1.Click
        If f Is Nothing OrElse Not f.Visible Then
            f = New Form
            f.Show()
        End If
    End Sub

[ツリー表示へ]
タイトルRe^2: 既存フォームがない場合にのみフォームを起動する。
記事No3326
投稿日: 2006/03/19(Sun) 12:42
投稿者YAS
ちょびっと改良しました。

    Dim f As Form
    Private Sub Button1_Click(ByVal sender As System.Object, _
                              ByVal e As System.EventArgs) _
                              Handles Button1.Click
        If f Is Nothing OrElse f.IsDisposed Then
            f = New Form
        End If
        If Not f.Visible Then
            f.Show()
        End If
    End Sub

[ツリー表示へ]
タイトルRe^3: 既存フォームがない場合にのみフォームを起動する。
記事No3328
投稿日: 2006/03/19(Sun) 20:58
投稿者ひろのしま
[OSのVer]:Windows    [VBのVer]:VB.NET  
> ちょびっと改良しました。
>
>     Dim f As Form
>     Private Sub Button1_Click(ByVal sender As System.Object, _
>                               ByVal e As System.EventArgs) _
>                               Handles Button1.Click
>         If f Is Nothing OrElse f.IsDisposed Then
>             f = New Form
>         End If
>         If Not f.Visible Then
>             f.Show()
>         End If
>     End Sub
ありがとございます。上記記述をしようすることにより
解決できました。ありがとうございます。

[ツリー表示へ]