Получаю странное поведение в VB6, и я выкидываю сеть за некоторые ответы.
У меня есть коллекция, в которой я храню группу пользовательских форм одного типа.
Dim formCollection As New Collection
Public Sub AddForm()
Dim newForm As New frmCustomForm
formCollection.Add(newForm)
End Sub
Затем в другой программе я перебираю коллекцию. Но когда я преобразую вариант обратно в класс пользовательской формы, я получаю ошибку приведения типа («Ошибка времени выполнения« 13 »: несоответствие типов»).
Public Sub Foo()
Dim someForm As frmCustomForm
Dim iterator As Integer
For iterator = 1 To formCollection.Count
Set someForm = formCollection.Item(iterator) ' The error appears here
someForm.SomeProperty = 3
Next iterator
End Sub
Похоже, что первоначально он принадлежал классу пользовательской формы, поскольку он сохранялся в коллекции, он терял свой тип и не может быть возвращен обратно. Кроме того, если я установлю точку останова перед тем, как попытаться привести сохраненную форму, а затем исследую объект через Locals, он потеряет всю информацию, относящуюся к классу, такую как имена свойств, которые отображаются только как «Item 1», «Item 2», « Пункт 3 'и т. Д.
Есть идеи?