Vb.net 将表单重置为原始状态
我想用vb.net重置我的表单,我会尝试下面的代码,但表单关闭,无法打开新表单Vb.net 将表单重置为原始状态,vb.net,winforms,reset,Vb.net,Winforms,Reset,我想用vb.net重置我的表单,我会尝试下面的代码,但表单关闭,无法打开新表单 Private Sub resert_button_Click(sender As Object, e As EventArgs) Handles resert_button.Click Dim client = New client_entry client.Show() Me.Close() End Sub 可以有多种方法来处理这个问题,但我的方法就像调用显示的表
Private Sub resert_button_Click(sender As Object, e As EventArgs) Handles resert_button.Click
Dim client = New client_entry
client.Show()
Me.Close()
End Sub
可以有多种方法来处理这个问题,但我的方法就像调用显示的表单,即使在我加载所需数据的地方,我也会调用这个事件
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
使用Me.Dispose()而不是Me.Close()它将处理表单,然后当您再次调用Yourform.Show()时,它将生成一个新表单。一种方法是向Form2添加属性。我假设你有两个表格,我们把它们叫做Form1和Form2。在Form1代码的某个地方,您声明了Form2的一个实例
Dim frm2 As New Form2
在某种程度上,您希望将Form2显示为一个模式窗口
frm2.ShowDialog()
现在让我们看看Form2代码
我在这里假设你有一个按钮来重置表单并关闭表单,你只需点击右上角的表单关闭按钮,也许你也有一个按钮来关闭表单。请考虑下面的Frim2代码
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
,就会立即打开,但您可以将相关代码放在需要的任何位置
在所示的表单1.中,您将看到一个循环。只要resetOnClose
为True
,循环将继续循环。当以模式显示frm1
时,此表单1代码中的执行将等待frm2
被隐藏或关闭。接下来,Form1代码检查resetOnClose
属性是true还是false。如果为false,frm2
关闭,循环终止。如果属性为true,frm2
将关闭,并在默认状态下重新分配Form2
的新实例
瞧 尝试Me.Hide
并交换订单
Me.Hide()
client.Show()
我假设client\u entry
是您的第一个表单或您试图打开的表单的名称。尝试将Dim client\u entry=New client\u entry
和client\u entry.Show()
更改为Dim client=New client\u entry
和client.Show()
@ArunKumar感谢您的帮助,但它不起作用。这将是在加载表单时加载数据的函数/子函数