1

私のプログラムにはいくつかのフォームがあり、明らかにナビゲーションもあります。NEXT ボタンと BACK ボタン。次のようにコード化された NEXT ボタンがあります。

Private Sub NextButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles NextButton.Click
    ' Closes current screen and opens the next

    Me.Visible = False
    Form4.ShowDialog()
End Sub

戻るボタンは次のようになります。

Private Sub BackButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BackButton.Click
    ' Closes current screen and opens the previous screen
    Me.Visible = False
    Form2.ShowDialog()
End Sub

ご覧のとおり、これは Form3 のものです。

そう。私はうまく進みますが、すぐにプログラムを実行したくありません。

私は何を間違っていますか?

4

2 に答える 2

1

OpenDialog を使用する必要がある場合、これを実現する方法の例を次に示します。

まず、Load イベントで Form1 への参照を設定する必要があります。参照は最初に Form2 で作成する必要があります (以下を参照)。

Public Class Form1
    Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
        Form2.f1 = Me
    End Sub

Private Sub Next_Click(sender As System.Object, e As System.EventArgs) Handles ButNext.Click
    Me.Visible = False
    Form2.ShowDialog()
End Sub

Form2 で、Form1 の load イベントで設定される Form1 パブリック変数を作成します。前のボタン ハンドラーで、ShowDialog を呼び出す代わりに、Form1 の visible プロパティへの参照を True に設定します。

Public Class Form2
    Public Property f1 As Form1 ' you can also create a variable instead of a property

    Private Sub Previous_Click(sender As System.Object, e As System.EventArgs) Handles ButPrev.Click
        f1.Visible = True
        Me.Visible = False
    End Sub

    Private Sub ButNext_Click(sender As System.Object, e As System.EventArgs) Handles ButNext.Click
        Me.Visible = False
        Form3.ShowDialog()
    End Sub

    Private Sub Form2_Load(sender As Object, e As System.EventArgs) Handles Me.Load
        ' repeat process for Form3
        Form3.f2 = Me
    End Sub
End Class

アプリケーション内のすべてのダイアログ フォームに対して、このプロセスを繰り返します。

于 2013-05-05T01:34:20.857 に答える