重置具有原始状态的表单

时间:2018-02-14 08:11:07

标签: vb.net winforms reset

我想使用vb.net重置我的表单我会尝试下面的代码,但表单关闭无法打开新表单。

<input type="email" autocapitalize="off" autocorrect="off" name="EMAIL" placeholder="Email address" required="" name="MERGE0" id="MERGE0">

4 个答案:

答案 0 :(得分:1)

尝试Me.Hide并交换订单

Me.Hide()
client.Show()

答案 1 :(得分:0)

可能有多种方法来处理这个问题,但我的方法就像调用form_shown一样,即使我将加载所需的数据,在重置期间我也会调用此事件。

Private Sub Me_Shown(sender As Object, e As EventArgs) Handles Me.Shown
   LoadData() 'This function/sub will load data for this form
End Sub

Private Sub resert_button_Click(sender As Object, e As EventArgs) Handles resert_button.Click
        Me_Shown(sender,e) 
End Sub

答案 2 :(得分:0)

使用Me.Dispose()而不是Me.Close()它将处理表单然后当你再次调用它时,它将生成一个新的。

答案 3 :(得分:0)

这样做的一种方法是向Form2添加属性。我假设你有两个表格让我们称之为Form1和Form2。在Form1的代码中的某处,您声明了Form2的实例..

Dim frm2 As New Form2

并且在某些时候你想将Form2显示为模态窗口..

frm2.ShowDialog()

暂时让我们看一下Form2代码

我假设你有一个按钮来重置表单并关闭表单,你只需点击右上角的表单关闭按钮,也许你有一个按钮来关闭表单。请考虑Form2的以下代码

Public Class Form2

    Friend Property resetOnClose As Boolean = False

    Private Sub btnReset_Click(sender As Object, e As EventArgs) Handles btnReset.Click
        resetOnClose = True
        Me.Hide()
    End Sub

    Private Sub btnclose_Click(sender As Object, e As EventArgs) Handles btnclose.Click
        resetOnClose = False
        Me.Hide()
    End Sub
End Class

有一个名为resetOnclose的属性,它是一个布尔类型。如果单击重置按钮,则此属性设置为True如果单击关闭按钮,则resetOnClose属性将设置为false。

在所有这些代码中,frm2被隐藏 - 未关闭。这意味着表单及其resetOnclose属性仍可用于Form1。现在好了,看看Form1代码..

Public Class Form1
    Dim frm2 As New Form2

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Shown
        frm2.ShowDialog()
        Do
            If frm2.resetOnClose Then
                frm2.Close()
                frm2 = New Form2
                frm2.ShowDialog()
            Else
                frm2.Close()
            End If
        Loop Until frm2.resetOnClose = False
    End Sub
End Class

对于此示例,只要显示Form1,就会打开frm2,但您可以将相关代码放在任何需要的地方

Form1.Shown代码中,您会看到一个循环。只要resetOnCloseTrue,循环就会继续循环。当frm1以模态方式显示时,在此Form1代码中执行将等待,直到frm2被隐藏或关闭。接下来,Form1代码检查resetOnClose属性是true还是false。如果为false,则frm2关闭,循环终止。如果该属性为true,则关闭frm2并在其默认状态下重新分配Form2的新实例。

瞧!