Я делаю приложение в форме окна. Я хочу определить, какой флажок выбран пользователем. Одним из способов проверить это было бы циклическое перемещение всех элементов управления каждый раз при запуске флажка checkchanged
. Но я не хочу этого делать, потому что можно проверить несколько флажков. Я хочу получить идентификатор флажка, как он выбран, или в событии mousedown. Как я могу это сделать?Обнаружение идентификатора флажка, который был отмечен
0
A
ответ
2
Вы можете добавить обработчики событий для флажков, которые вы хотите во время выполнения. Используйте предложение Where
для фильтрации по имени, если это применимо. Этот код делает это в form_load.
Внутри обработчика вы можете сделать sender
локальной переменной, которая представляет флажок, который был отмечен, если хотите.
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
For Each checkBox In Me.Controls.OfType(Of CheckBox)().Where(Function(cb As CheckBox) cb.Name.Contains("CheckBox"))
AddHandler checkBox.CheckedChanged, AddressOf checkboxCheckedChanged
Next
End Sub
Private Sub checkboxCheckedChanged(sender As Object, e As EventArgs)
Dim myCheckbox As CheckBox = DirectCast(sender, CheckBox)
Dim c As Boolean = myCheckbox.Checked
Dim n As String = myCheckbox.Name
' etc.
End Sub
РЕДАКТИРОВАТЬ
Как Neolisk указывалось, это не учитывает вложенные элементы управления, т.е. управления внутри контейнеров на форме. Этот метод расширения возвращает все эти элементы управления:
<Extension()> _
Public Function ChildControls(Of T As Control)(ByVal parent As Control) As List(Of T)
Dim result As New List(Of Control)
For Each ctrl As Control In parent.Controls
If TypeOf ctrl Is T Then result.Add(ctrl)
result.AddRange(ctrl.ChildControls(Of T)())
Next
Return result.ToArray().Select(Of T)(Function(arg1) CType(arg1, T)).ToList()
End Function
И сделать это петля в Form_Load вместо:
For Each checkBox In Me.ChildControls(Of CheckBox).Where(Function(cb As CheckBox) cb.Name.Contains("CheckBox"))
AddHandler checkBox.CheckedChanged, AddressOf checkboxCheckedChanged
Next
1
Используйте аргумент sender
в обработчике событий.
Private Sub CheckBox1_CheckedChanged(sender As Object, e As EventArgs) _
Handles CheckBox1.CheckedChanged
'DirectCast(sender, CheckBox).Name ?
End Sub
Смежные вопросы
- 1. Запустить запрос для каждого флажка, который отмечен
- 2. Как изменить состояние флажка, чтобы он не был отмечен (AngularJS)?
- 3. validate if checkbox был отмечен
- 4. JQuery - как получить объект jquery из флажка, который отмечен
- 5. Создайте скрытый ввод для каждого флажка, который отмечен
- 6. Добавить и удалить скрытый ввод для каждого флажка, который отмечен
- 7. Идентификация идентификатора, который был изменен в классе
- 8. Получение идентификатора привязанного тега, который был нажат.
- 9. Получение имени/идентификатора выбора, который был изменен
- 10. Как получить значения переключателя, который был отмечен, jquery
- 11. Обнаружение узла, который был нажат в javascript
- 12. Форма Rails - статус флажка отмечен неправильно.
- 13. Обнаружение сенсорного идентификатора разрешено
- 14. Как отобразить div на основе флажка отмечен
- 15. Как узнать, какой переключатель был отмечен jQuery?
- 16. Methode ScriptApp.GetScriptTriggers»был отмечен как устаревший
- 17. Определите, был ли отмечен элемент списка списка.
- 18. , но не был отмечен @optional в testng.xml
- 19. jQuery - обнаружение при изменении флажка
- 20. Обнаружение идентификатора вложенного списка
- 21. Получить тег ввода для текущего флажка, который был нажат
- 22. Обнаружение браузера - события смены флажка
- 23. Как придерживаться div внизу страницы при прокрутке после флажка отмечен
- 24. Извлечение идентификатора объекта, который был нажат в jQuery
- 25. Удаление флажка установлено ниже флажок отмечен в meteor
- 26. Обнаружение, когда JFileChooser был закрыт
- 27. Как установить флажок без флажка 1 Когда флажок 2 был отмечен и установлен флажок флажка 2 Когда флажок 1 был проверен с помощью скрипта?
- 28. как передать значение флажка (отмечен/не отмечен) контроллеру как параметр href в jsp
- 29. JQuery обнаружение идентификатора выбранной кнопки?
- 30. Xcode: обнаружение строки идентификатора выбранного
У меня есть небольшое сомнение, почему положение ручки содержит checkbox1.checked я имею в виду эта функция должна обрабатывать для всех флажков так, как эта функция будет вызываться, когда какой-либо другой флажок отмечен – user2179293
@ user2179293: Это стандартный синтаксис, созданный Visual Studio, я сбросил CheckBox на форму и дважды щелкнул по ней. В вашем случае вы можете иметь несколько событий, обрабатываемых одним и тем же обработчиком событий, статическим или динамическим. У вас может быть или не быть статического предложения Handles - подход не меняется. Вам все равно нужно изучить аргумент 'sender'. – Neolisk
В случае обработки нескольких флажков я должен перечислять имена всех флажков после дескриптора. У меня около 200 флажков – user2179293