Я хочу добавить обработчик в элемент управления, который я нахожу по его названию. Проблема в том, что это не представляется возможным дим элемент управления с помощью кнопки или RadioButton или что-то вроде этого ...Dimming Control by String и add handler
Dim control As Control = FindName(MyObject.Name.ToString)
AddHandler control.MouseEnter, Sub()
Try
Dim Tooltip As New ToolTip()
Tooltip.SetToolTip(control, control.Name.ToString)
Catch
End Try
End Sub
В коде я мог бы затемнить контроль как кнопки, но затем, например, RadioButtons не работает. И я не хочу, чтобы иметь код, который всегда проверяет для OBJECTTYPE, а затем перейти в, если часть, как
If TypeName(MyObject).ToString = "Button" then
...
else if TypeName(MyObject).ToString = "Label" then
...
else if TypeName(MyObject).ToString = "RadioButton" then
...
End If
Есть ли лучшее решение, то делать это таким образом?
E.g. что-то вроде
Dim Control as TypeName(MyObject).ToString = FindName(MyObject.Name.ToString)
Think вам нужно расширить немного, как я пытаюсь понять, что 'MyObject' есть. Это что-то, что вы заявили, или вы зацикливаете элементы управления? – Bugs
Я перебираю элементы управления и получаю их детей до тех пор, пока не останется ни одного ребенка - затем перейдите к следующему .. и для каждого ребенка я хочу попытаться добавить этот обработчик –
Подумайте, вам просто нужно обратиться к элементу управления. MouseEnter довольно стандартен для элементов управления. В вашем цикле 'Для каждого ctr As Control' поместите код' AddHandler ctr.MouseEnter'. Сделайте то же самое для дочерних элементов управления. Похоже, вы уже делаете это или близко к нему. Может потребоваться включить больше кода. – Bugs