如何使用VB.NET在不关闭窗体的情况下重新加载窗体?

如何使用VB.NET在不关闭窗体的情况下重新加载窗体?,vb.net,Vb.net,您能告诉我如何在不关闭VB.NET的情况下重新加载windows窗体吗?将所有初始化代码放入一个方法中,而不是构造函数或form.Load事件,然后只调用该方法。这还可以包括设计器生成的InitializeComponent()方法,该方法设置窗体上的所有控件。但是,您应该删除表单上的所有控件,作为该方法中的第一个操作。您不能这样做 为什么要重新加载表单?是否要清除所有输入控件或类似的内容?最简单的解决办法可能是手工清理 或者,您可以将所有控件放入用户控件容器中。然后在表单上实例化该用户控件。如

您能告诉我如何在不关闭VB.NET的情况下重新加载windows窗体吗?

将所有初始化代码放入一个方法中,而不是构造函数或form.Load事件,然后只调用该方法。这还可以包括设计器生成的InitializeComponent()方法,该方法设置窗体上的所有控件。但是,您应该删除表单上的所有控件,作为该方法中的第一个操作。

您不能这样做

为什么要重新加载表单?是否要清除所有输入控件或类似的内容?最简单的解决办法可能是手工清理

或者,您可以将所有控件放入用户控件容器中。然后在表单上实例化该用户控件。如果要重新加载表单内容,现在只需删除并重新实例化用户控件

Application.Restart()

关闭应用程序并立即打开一个新实例。

尝试使用
Me.Refresh()
它与我一起工作了我知道它很晚了,但很有用

Me.Controls.Clear() 'removes all the controls on the form
InitializeComponent() 'load all the controls again
Form1_Load(e, e) 'Load everything in your form, load event again

我知道。我参加聚会迟到了。但是,也许它对需要它的人有用

如果使用
.ShowDialog
显示其他表单中的表单,则在关闭已显示的表单时,将执行此调用后的代码。例如:

Private Sub button1_Click(sender As Object, e As EventArgs) Handles button1.Click
    Dim form2 As New Form2
    form2.ShowDialog
    UpdateThisForm()
End Sub

那么就不必从另一个表单(表单2)更新表单。

表单不是整个应用程序!不知道是谁投票否决了这家伙,但这是最清楚的答案。可能不像AltF4所说的那样是表单刷新,但我认为没有一种干净的方法可以重新加载表单。清除、初始化和运行加载事件的技巧并不适用于所有人。更可能的情况是,不使用Me.ControlsClear()会使大量资源处于打开状态,这将在“刷新”时导致访问冲突问题。干净的重新启动是唯一不草率的方法+1我刚刚注释掉了一段繁琐的代码,并将其替换为以下内容。好多了!您可能已经定义了一个Refresh sub来工作。不,Refresh是一个选项。它实际上正在工作。将所有启动代码放在一个方法中对我不起作用。我在一个循环中添加和删除了很多动态控件,但是
InitializeComponent
完成了这项工作。
Private Sub button1_Click(sender As Object, e As EventArgs) Handles button1.Click
    Dim form2 As New Form2
    form2.ShowDialog
    UpdateThisForm()
End Sub