tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトルフォームの起動について
記事No1485
投稿日: 2005/03/17(Thu) 10:19
投稿者はせどん
[OSのVer]:Windows XP   [VBのVer]:VB.NET   2003

たびたびお世話になっております。
フォームの起動で2点質問があります。

1.Sub Mainで起動した場合にShowで起動すると一瞬開くのですが、
  起動できません。モーダルだと起動するのですがなぜでしょうか?
Module Module1
    Sub Main()
        Dim Login As New Login

        'MessageBox.Show("TEST", "", MessageBoxButtons.OK)
        'Login.ShowDialog()
        Login.Show()

    End Sub
End Module

2.Form1からモーダレス呼び出されたForm2からForm1を終了する方法
記事No : 372 ににたような記事があったのですが、理解できませんでした。

Public Class Login
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Button1.Click
        Dim Main As New Main
    Main.owner = me
        Main.Show()

    End Sub
End Class
'
Public Class Main
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Button1.Click
        Me.Owner.Close() ← PGが終了してしまう。
    End Sub
End Class

[ツリー表示へ]
タイトルRe: フォームの起動について
記事No1486
投稿日: 2005/03/17(Thu) 12:17
投稿者魔界の仮面弁士
> 1.Sub Mainで起動した場合にShowで起動すると一瞬開くのですが、
>   起動できません。モーダルだと起動するのですがなぜでしょうか?
起動後に、そのまま Sub Main を抜けてしまい、
Loginフォームのインスタンスが破棄されてしまうからでしょう。

Application.Runメソッドを使ってみてください。
hhttp://www.atmarkit.co.jp/fdotnet/basics/oop03/oop03_03.html


> 2.Form1からモーダレス呼び出されたForm2からForm1を終了する方法
Windows SDKでは、「モードレス」と呼ばれますね。

> 記事No : 372 ににたような記事があったのですが、理解できませんでした。
これですね。
hhttp://www.bcap.co.jp/hanafusa/bbs/wforum.cgi?mode=allread&no=372&page=270

>         Me.Owner.Close() ← PGが終了してしまう。
Ownerフォームが、スタートアップフォームになっていませんか?

[ツリー表示へ]
タイトルありがとうございました。
記事No1487
投稿日: 2005/03/17(Thu) 12:51
投稿者はせどん
[OSのVer]:Windows    [VBのVer]:VB.NET  
> > 1.Sub Mainで起動した場合にShowで起動すると一瞬開くのですが、
> >   起動できません。モーダルだと起動するのですがなぜでしょうか?
> 起動後に、そのまま Sub Main を抜けてしまい、
> Loginフォームのインスタンスが破棄されてしまうからでしょう。
納得!

>
> > 2.Form1からモーダレス呼び出されたForm2からForm1を終了する方法
> >         Me.Owner.Close() ← PGが終了してしまう。
> Ownerフォームが、スタートアップフォームになっていませんか?
Sub Mainからモーダルで呼び出した場合も一緒でした。
最初に起動したオーナーフォームを消すとPGが終了するんですね。。。

[ツリー表示へ]