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

BACK 按钮是这样的:

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

2

在 VB 中使用“ShowDialog”显示表单时,您必须评估响应并关闭表单。仅将 Visible 设置为 false 是不够的。

请参阅此处的代码:http: //msdn.microsoft.com/en-us/library/c7ykbedk.aspx ?cs-save-lang=1&cs-lang=vb#code-snippet-2

您可能只想显示表单,而不是 showDialog 它,这里有示例:http: //msdn.microsoft.com/en-us/library/system.windows.forms.control.show.aspx

希望有帮助。

于 2013-05-04T23:29:33.930 回答
1

如果您必须使用 OpenDialog,这里有一个如何实现的示例:

首先需要在加载事件中设置对 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 的加载事件中设置的 Form1 公共变量。在上一个按钮处理程序中,将对 Form1 的可见属性的引用设置为 True,而不是调用 ShowDialog。

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 回答