1

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

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

4

3 回答 3

2

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

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

更简单的解决方案是销毁当前表单并用新创建的表单替换它。当然,当创建一个新表单时,它会具有默认状态,这正是您想要的。


编辑:调用InitializeComponents()不是一个完美的解决方案。不叫它是有原因的ReinitializeComponents()。它旨在在首次创建和显示表单时进行初始初始化。它的设计目的不是为了在其他地方被客户端代码再次调用。无论如何,如果你这样做,它会破坏事情。

如果树节点是您唯一担心保留的东西,为什么不声明一个类级成员来保存您删除的那些?您可以在它们被删除后使用 aQueueStack集合之类的东西来保存它们,并在要将它们恢复到 TreeView 时将它们弹出。

于 2013-02-15T06:41:59.653 回答
1
Public Sub resetform(ByVal form_name as Form)  
    form_name.dispose  
    form_name.show
End Sub

在您的按钮单击事件上调用 resetform

resetform(YourFormName)
于 2013-02-15T06:54:31.197 回答
0

我刚刚工作,现在完成了。我将一个变量作为树节点并分配了原始树视图的克隆。最后只需将该变量添加到我的树视图中。

于 2013-02-15T08:43:16.960 回答