.net 创建对象的新实例后保留以前的数据

.net 创建对象的新实例后保留以前的数据,.net,vb.net,variable-declaration,objectinstantiation,.net,Vb.net,Variable Declaration,Objectinstantiation,假设我有这个: Dim Editor As frmEditor Editor.Text = "New Form" Editor.Controls.Add(richTextBox) 然后在稍后的子例程中,我执行以下操作: Editor = New frmEditor 是否可以保存以前声明的编辑器的控件/数据以备将来使用?声明的不是使用New关键字实例化的。[nkvu-从注释移动到回答,以防任何人有类似的查询….] 你能做些像这样的事情吗 Dim oldEditor as frmEditor

假设我有这个:

Dim Editor As frmEditor
Editor.Text = "New Form"
Editor.Controls.Add(richTextBox)
然后在稍后的子例程中,我执行以下操作:

Editor = New frmEditor

是否可以保存以前声明的
编辑器的控件/数据以备将来使用?声明的不是使用
New
关键字实例化的。

[nkvu-从注释移动到回答,以防任何人有类似的查询….]

你能做些像这样的事情吗

Dim oldEditor as frmEditor 
然后在你做之前:

Editor = New frmEditor 
这样做:

oldEditor = Editor
oldEditor
应具有对上一个对象的引用

Dim Editor As frmEditor
。。。不创建编辑器,它只声明一个空变量,因此

Dim Editor As frmEditor
Editor.Text = "New Form"
。。。会失败的

您必须使用
新建
创建一个表单:

Dim Editor As frmEditor
Editor = New frmEditor()
Editor.Text = "New Form"


回答你的问题:

将“旧”编辑器分配给另一个变量

Dim oldEditor As Editor = frmEditor
frmEditor = New frmEditor()
frmEditor.RtfText = oldEditor.RtfText
另外,创建一个公共属性,允许您从表单外部访问需要访问的内容

Public Property RtfText() As String
    Get
        Return richTextBox.Rtf
    End Get
    Set(ByVal value As String)
        richTextBox.Rtf = value
    End Set
End Property

为什么不,只是不使用相同的变量?它不起作用。如果我没弄错的话
Editor=New frmEditor
创建一个与前一个不同的新对象,删除所有控件和数据?如果我错了,请纠正我。您好,在您执行
Editor=New frmEditor
之前,您是否可以执行类似于
Dim oldEditor=frmEditor
的操作
oldEditor
应该有一个对前一个objectThank@nkvu的引用,它起了作用。:)没问题-我也把评论移到了回答部分,以防其他人有类似的问题
Public Property RtfText() As String
    Get
        Return richTextBox.Rtf
    End Get
    Set(ByVal value As String)
        richTextBox.Rtf = value
    End Set
End Property