如何将表单重置为其原始状态?

时间:2013-02-15 06:30:58

标签: vb.net winforms

我正在开发一个vb.net windows应用程序。在这里,我有一个窗体,几乎没有文本框和几个控件。现在加载表单后,我创建并删除该表单中的几个控件。我在表单上也有一个重置按钮,因此用户可以点击它,可以获得表单的原始设计。我试着调用InitializeComponents()方法。但它并未反映表格上的任何变化。如何在按钮点击时获得原始设计?

好的,我需要修改我的问题。我不想重新设计我的所有控件,只想重新设计我修改过的树视图。

3 个答案:

答案 0 :(得分:2)

不会在任何地方跟踪Windows窗体的“原始”状态/设置。您在运行时所做的修改(添加,调整大小,删除等控件)都会实时发生,并成为表单的当前和唯一状态。

你可以自己跟踪原始设置,然后编写代码循环遍历所有控件并恢复它们,但这将是很多工作。

更简单的解决方案是破坏当前表单并将其替换为新创建的表单。当然,在创建新表单时,它将具有默认状态,这正是您想要的。


修改:调用InitializeComponents()不是一个完美的解决方案。有一个原因是它不被称为ReinitializeComponents()。它设计用于在首次创建和显示表单时执行初始初始化。它不是设计为客户端代码在其他地方再次调用。无论如何,如果你这样做,那就会破坏一切。

如果树节点是您唯一担心保留的节点,为什么不声明一个类级成员来保存您删除的节点?您可以使用类似QueueStack集合的内容在删除它们之后保留它们,并在您想要将它们还原到TreeView时将它们弹出。

答案 1 :(得分:2)

Public Sub resetform(ByVal form_name as Form)  
    form_name.dispose  
    form_name.show
End Sub

在按钮点击事件

上调用resetform
resetform(YourFormName)

答案 2 :(得分:0)

我刚刚解决了,现在已经完成了。我把变量作为treenode并分配了原始树视图的克隆。最后,只需将该变量添加到我的树视图中。