3

私は 2 つのフォームを持つ VB プログラムを持っています。各フォームのフォーム ロードをコーディングしました。

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    MessageBox.Show("I AM FORM 1")
End Sub

Private Sub Form2_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    MessageBox.Show("I AM FORM 2")
End Sub

Form1とForm2を切り替える方法は次のとおりです。ボタンを使用しました。

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

    Me.Hide()
    Form1.Show()

End Sub

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

    Me.Hide()
    Form2.Show()

End Sub

しかし、フォームを切り替えるたびに、フォームのロード イベントは 1 回だけトリガーされます。私のコードに何か問題がありますか? Me.Hide() は前のフォームを非表示にするだけで、完全には閉じないと思います。以前のフォームを閉じて、もう一度開いたときにフォームの読み込みイベントが再びトリガーされるようにしたいと考えています。

4

6 に答える 6

0
If MessageBox.Show("Are you sure to close this application?", "Close", 
    MessageBoxButtons.YesNo, MessageBoxIcon.Question) = Windows.Forms.DialogResult.Yes Then
    frmIndex.Show() //the main form 
Else
    e.Cancel = True
    Me.Show() // The form open
End If

フォームが開いて閉じ、メイン/インデックス フォームに戻ります。それが役立つことを願っています:) .show.hide と e.cancel で遊んでください

于 2016-03-10T11:29:45.927 に答える
-1

はい。あなたがやっていることは、form2 を開く前にフォームを閉じることです。

それ以外の:

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

    Me.Hide()
    Form1.Show()

End Sub

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

    Me.Hide()
    Form2.Show()

End Sub

あなたが置く必要があります:

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

Form1.show

Me.hide 

End Sub

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

Form2.show

Me.hide   

End Sub

これが役立つ場合は、返信してください。

于 2013-08-17T08:42:55.313 に答える