Я пытаюсь передать события элементов управления на свой родительский элемент управления. У меня есть мой контроль, панель в нем, затем 3 элемента управления на панели. Это настраиваемый элемент управления, добавленный в панель макета потока во время выполнения.Пользовательский контроль, события управления передачей родительскому
Я могу получить доступ к панели через основной код с помощью обработчика добавления, но каждый раз, когда я нажимаю один из элементов управления на этой панели, я бы хотел передать событие мыши, чтобы события панели активировались.
Public Class Repeater
Public Event RepeaterMouseUp As MouseEventHandler
Private Sub on_Mouse_Up(ByVal sender As Object, ByVal e As MouseEventArgs) 'Handles TextBox1.onclick
RaiseEvent RepeaterMouseUp(sender, e)
End Sub
Private Sub Repeater_Load(sender As Object, e As EventArgs) Handles Me.Load
AddHandler lblRecName.MouseUp, AddressOf on_Mouse_Up
AddHandler lblNote.MouseUp, AddressOf on_Mouse_Up
AddHandler strRating.MouseUp, AddressOf on_Mouse_Up
End Sub
Private Sub lblNote_MouseUp(sender As Object, e As MouseEventArgs) Handles lblNote.MouseUp
RaiseEvent RepeaterMouseUp(sender, e)
End Sub
Private Sub Panel1_MouseUp(sender As Object, e As MouseEventArgs) Handles Panel1.MouseUp
RaiseEvent RepeaterMouseUp(sender, e)
End Sub
End Class
Я не могу найти какие-либо пригодные для использования примеры прохождения событий мыши в родительский элемент управления. Я ценю любую помощь.
Ваш пользовательский элемент управления больше похож на UserControl. Обычно UC обрабатывает большинство дочерних управляющих событий до момента, когда настраивается специальное событие для используемой формы. Если вам нужна форма, чтобы знать о контрольных событиях, вам нужно их пузырить - в этих событиях UC поднимет событие, на которое может подписаться форма. – Plutonix
Согласовано. Однако, если у вас нет необходимости в событиях кликов в элементах управления, вы можете [сделать их прозрачными для кликов] (http://stackoverflow.com/questions/31353202/how-to-fix-borderless-form-resize- с-контроль-на-границах формы), используя подход, описанный Хансом Пассантом. –
Редактировать добавлено. Плутоникс, ты был прав, это UserControl. Я продолжаю забывать о различиях. Оба комментария были полезны, хотя для меня найти ответ. На самом деле мне не нужно было управлять событиями щелчка, чтобы сделать что-либо, кроме как передать клиенту родителя, который работает сейчас. Спасибо за помощь! – Recoil