2013-03-27 3 views
0

Скажем, у меня есть это:сохранить предыдущие данные после создания нового экземпляра объекта

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

Позже в подпрограмму, я делаю это:

Editor = New frmEditor 

Можно ли сохранить элементы управления/данные ранее объявленного Editor для будущего использования? Тот, который был объявлен не тем, который был создан с использованием ключевого слова New.

+0

Почему нет, просто не использовать ту же переменную? – Paparazzi

+0

Не работает. Если я не ошибаюсь. 'Редактор = Новый frmEditor' создает новый объект, который отличается от предыдущего, удаляя все элементы управления и данные? Пожалуйста, поправьте меня, если я ошибаюсь. –

+1

Привет, вы могли бы сделать что-то вроде «Dim oldEditor как frmEditor», прежде чем вы выполните «Редактор = Новый frmEditor' do' oldEditor = Editor'? «oldEditor» должен иметь ссылку на предыдущий объект. – nkvu

ответ

1

[nkvu - переехал из комментариев, чтобы ответить в случае, если кто имеет аналогичный запрос ....]

Не могли бы вы сделать что-то вроде:

Dim oldEditor as frmEditor 

Тогда, прежде чем сделать:

Editor = New frmEditor 

ли это:

oldEditor = Editor 

oldEditor должны затем иметь ссылку на предыдущий объект

1
Dim Editor As frmEditor 

... не создает редактор, он объявляет только пустой переменной, поэтому ...

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

... потерпит неудачу !

Вы должны создать форму с New:

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

Или

Dim Editor As frmEditor = 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 
Смежные вопросы