Ошибка «Функция или интерфейс помечены как ограниченные, или функция использует тип автоматизации, который не поддерживается» при назначении объекта формы - PullRequest
0 голосов
/ 19 октября 2018

У меня есть две формы: Form1 и Form2

Form1 создает новый экземпляр Form2:

Dim NewFrm as new Form2
Newfrm.show

Мне нужно обновить или вызвать подпрограмму из NewFrm (Form2) для вызывающегоform, Form1.

Я попытался создать свойство Let в Form2 следующим образом:

Dim CalledFromFormInstanceFrm as Form1

Public Property Let CalledFromFormInstance(oValue As Form1)
    CalledFromFormInstanceFrm = oValue
End Property

Итак, в Form1 я сейчас делаю

Dim NewFrm as New Form2
NewFrm.CalledFromFormInstanceFrm=Me
NewFrm.Show

, когдаон получает доступ к общему свойству Let in Form, это работает - но CalledFromFormInstanceFrm завершается с ошибкой:

Функция или интерфейс помечены как ограниченные, либо функция использует тип автоматизации, не поддерживаемый в Visual Basic'.

Google, похоже, ошибка указывает на то, что люди, использующие другие формы ActiveX, а не формы в VB6.

Я также пытался изменить свойство Let на

* 1023.*

и изменение объявления на

Dim CalledFromFormInstanceFrm as Form

На всякий случай, если ему не нравятся подробности о Форме, и он только что принял объект Form.

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

Есть идеи?

1 Ответ

0 голосов
/ 19 октября 2018

Set - это то, что вам нужно при работе со ссылками на объекты, поэтому оно должно быть:

Dim CalledFromFormInstanceFrm As Form1

Public Property Set CalledFromFormInstance(oValue As Form1) '//set
    Set CalledFromFormInstanceFrm = oValue '//set
End Property 

Вызывается как:

Dim NewFrm As New Form2
Set NewFrm.CalledFromFormInstance = Me '// set
NewFrm.Show

Также обратите внимание, что вы пытаетесь использоватьзакрытая переменная: NewFrm.CalledFromFormInstanceFrm = Me вместо публичной собственности NewFrm.CalledFromFormInstance.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...