У меня есть элемент управления пользователя, на котором есть три метки. Я хотел бы, чтобы событие click на родительской форме было поднято, когда элемент управления щелкнут в любой точке холста, даже в ярлыках. Его как кнопка с 3 ярлыками ... прямо сейчас она только поднимет родительское событие, когда будет нажата часть основного холста, но при нажатии на ярлыки не будет пузыриться. Во-первых, в конструкторе я назначаю обработчики событий:Пользовательский контроль с несколькими ручками управления щелчком
public partial class RunCodeButton : UserControl
{
public event EventHandler ButtonClick;
public RunCodeButton()
{
InitializeComponent();
LblCode.Click += RunCodeButton_Click;
LblCount.Click += RunCodeButton_Click;
LblDescription.Click += RunCodeButton_Click;
}
}
Тогда я защелкивающийся событие управления пользователя добавляется к классу:
private void RunCodeButton_Click(object sender, EventArgs e)
{
ButtonClick?.Invoke(this, e);
}
затем в основной форме (а не пользовательский элемент управления), я добавить событие щелчка, когда я произвожу кнопку:
_button.Click += Button_Click;
private void Button_Click(object sender, EventArgs e)
{
Result = DialogResult.OK;
RunCode = (Codes_Run)((RunCodeButton)sender).Tag;
Close();
}
если я установить точку останова в пользовательские элементы управления выберите событие и нажмите на этикетке. Он вызывает событие, но «ButtonClick» всегда имеет значение null, и он останавливается.
Есть ли способ сделать элементы управления пользователя дочерними элементами управления щелчком мыши?
Это winforms или WPF? –
Winforms. Извините – rigamonk
[Передать событие перехода дочернего элемента управления в родительский элемент управления] (http://stackoverflow.com/a/36130796/3110834) –