Я изо всех сил пытаюсь обернуть голову вокруг концепции, и я уже 4-5 часов. Поэтому я надеюсь, что кто-то сможет мне это объяснить.Использование различных классов для проверки основных элементов управления формы
У меня есть несколько флажков внутри закладки с надписью «tabpage2» в основной форме «QoE», и у меня есть несколько классов, которые должны знать состояния проверки этих флажков.
Я первый пошел об этом с помощью:
dim f as new QoE
в каждом классе, то вызов галочки, как это:
f.chkTcpRTT.checked
, но результат всегда возвращающиеся «False», является ли окно проверено или нет, что я предполагаю, связано с тем, что я использую слово «новый».
Моя вторая мысль была использовать метод имущества
Public Shared Property getchecker(ByVal chk As CheckBox) As Boolean
Get
Return chk.Checked
End Get
Set(ByVal value As Boolean)
chk.Checked = value
End Set
End Property
Но это все еще оставляет меня с того, чтобы передать объект из другого класса, который я не могу понять. поэтому я попытался это:
Public Shared Property getchecker(ByVal txt As string) As Boolean
Get
For Each ctrl as Control in TabPage2.Controls
If ctrl.name = txt Then
Return ctrl.Checked
End If
Next
End Get
Set(ByVal value As Boolean)
txt.Checked = value
End Set
End Property
Но теперь я получаю сообщение об ошибке: «Не удается обратиться к члену экземпляра класса внутри общего метода или совместно инициализатору член без явного экземпляра класса.»
Методы, которые я использую для вызова этих функций, являются «общедоступными», так почему я получаю эту ошибку и как могу получить эти контрольные штаты? Если это возможно, я бы хотел использовать некоторые варианты первого кода, так почему же все возвращается назад? это из-за «нового» флага? Мне хотелось бы знать немного фона, если это возможно.
Спасибо Ребята
Не отличное решение. f является нулевым в вашем примере. Что произойдет, если у вас открыто два Form1? – LarsTech
Как я уже сказал в последнем посте - Вы действительно должны попробовать сначала. В настоящее время я использую это в двух моих программах. – Nefariis
Не троллинг, просто увидел, что вы опубликовали тот же ответ, поэтому я разместил тот же комментарий. :-) – LarsTech