Просто быстро, я пытаюсь очистить свои методы кодирования и наткнулся на это, я не мог решить.Запуск вспомогательного устройства на форме с опцией Strict ON
С опцией strict on, как вы находите экземпляр формы и запускаете публичный элемент в указанном экземпляре?
Например, в пакете инвентаря у меня есть ярлык для проверки части, которая обнаруживает, что форма проверки открыта и запускает Checkout.AddID (ID как целое). EG:
For Each Form In Application.OpenForms
If Form.Name = "FRMCheckout" Then
Form.AddIDToList(PartID)
End If
Next
Это прекрасно работает с опцией строгого режима. Тем не менее, включить его и изменить его в соответствии с такими, как:
For Each Form As Windows.Forms.Form In Application.OpenForms
' If Form.Name = "FRMCheckout" Then EDIT: Dropped this in leu of this:
If TypeOf (Form) Is FRMCheckout Then
Form.AddIDToList(Ctype(PartID, Integer))
End If
Next
Выдает ошибку (очевидно), что .AddIDToList не является членом Forms.form.
Изменение на For Each Form as ProgramNamespace.FRMCheckout
будет выдавать «Невозможно набросить тип формы на FRMcheckout», когда цикл for попадает в обычную форму.
Что было бы для этого, не отключая опцию строгого режима?
(Пожалуйста, помните, мы спрашиваем, потому что мы пытаемся узнать, прежде чем downvote это только потому, что его очевидным для вас)
DirectCast (Form, FRMCheckout) .AddIDToList (Ctype (PartID, Integer). Подумайте, что произойдет, если пользователь откроет * два экземпляра FRMCheckout. Всегда лучше не анализировать его в последний момент, используйте конструктор, чтобы сообщить классу FRMCheckout, с каким объектом он должен сотрудничать. –