2013-04-19 2 views
0

я добавляю элементы управления формы при загрузке формы вручную:Удалить окна образуют элементы управления на выходе

Me.FieldI = New TextBox() 
Me.FieldI.Location = New System.Drawing.Point(50, 10) 
Me.FieldI.Name = "FieldI" 
Me.FieldI.Size = New System.Drawing.Size(40, 20) 
Me.FieldI.TabIndex = 5 
Me.Conversion.Controls.Add(Me.FieldI) 
[..] 

Когда я закрываю окно формы и открыть его, управление все же есть (со старым .Text содержимое, потому что в этом случае это текстовое поле).

Я хотел бы удалить элементы управления, которые были созданы во время загрузки формы в событии закрытия формы, чтобы избежать дублирования элементов в моей форме.

Как я могу это достичь?

редактировать

код закрытия формы выглядит следующим образом (только появляется главная форма назад):

Private Sub Form1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Me.FormClosing 
    Main.Show() 
End Sub 
+0

Будет интересно узнать, как закрыть форму и как открыть форму. Такое поведение не должно происходить, если вы действительно уничтожаете форму и открываете новый экземпляр этого файла. – Steve

+0

Я отредактировал мое сообщение. Ничего не добавлено, кроме 'Main.Show()', чтобы показать основную форму назад. – Lucas

+0

Когда я добавляю 'Me.Conversion.Controls.Remove (Me.FieldI)' в событие закрытия формы, он работает правильно ... но действительно ли нужно удалить это количество элементов формы вручную? (около элементов '20') – Lucas

ответ

1

Проблема здесь состоит в том, что форма не расположена, поэтому, когда вы открываете его снова элементы управления все еще существуют с момента последнего открытия.

Попробуйте следующее:

Using frm = New subForm() 
    frm.ShowDialog() 
End Using 

Переменная frm будет утилизировать после использования.

Также ...

Вы можете также обеспечить обратную связь от диалога, чтобы проверить, была ли форма успешной или нет. Например:

Dim frm As New subForm() 
If frm.ShowDialog = DialogResult.OK Then 
    'YAY! 
Else 
    'Something failed 
End If 
+0

Спасибо, Джек! Прекрасно работает. – Lucas

Смежные вопросы