[リストへもどる]
一括表示

投稿時間:2003/05/06(Tue) 14:26
投稿者名:tadashi
URL :
タイトル:
formのcloseについて
すいません。ちょっと教えていただきたいんですけど、(VB.NETで開発)

FORMAからFORMBを起動します。
FORMBのFORM_LOADイベントでエラーが発生した場合FORMBを終了したいんです。

FORMBのFORM_LOADイベントからFORMB.CLOSEを実行しても、
ShowDialogを使用していると画面がCLOSEしないんですけど、
(戻り値がある為どうしてもShowDialogメソッドを使用したい)
何か方法があったら教えていただきたんですけど、お願いします。

投稿時間:2003/05/07(Wed) 11:04
投稿者名:よねKEN
Eメール:
URL :
タイトル:
Re: formのcloseについて
> FORMBのFORM_LOADイベントからFORMB.CLOSEを実行しても、
> ShowDialogを使用していると画面がCLOSEしないんですけど、

Dim t As New System.Threading.Thread(AddressOf Close)
t.Start()

のようにして別スレッドでCloseメソッドを発行すれば閉じられますが、
しっくりこないので、あまりお勧めな手ではないです。

投稿時間:2003/05/07(Wed) 13:24
投稿者名:NAO★
Eメール:
URL :
タイトル:
Re: formのcloseについて
    Dim flag As Boolean = False ' エラーになったら True

    Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        flag = True
    End Sub

    Protected Overrides Sub OnPaint(ByVal e As PaintEventArgs)
        ' Call the OnPaint method of the base class.
        MyBase.OnPaint(e)

        If (flag = True) Then
            Me.Close()
        End If
    End Sub

Loadイベントではフラグだけ立てて置いて、OnPaintイベントでCloseしています。
一瞬表示されますけど、安全かな?

投稿時間:2003/05/07(Wed) 14:08
投稿者名:tadashi
URL :
タイトル:
Re^2: formのcloseについて
よねKENさん。NAO★さん。
ありがとうございました。
早速やってみたら、うまくいきました。