我需要创建自定义 Button
- 一个带有 2 个 Label
的 Panel
,以实现良好的视觉格式设置。
但是我需要通过Label
点击面板来触发事件
,例如MouseDown
,或者我需要分配它两个标签的事件
。
我尝试创建 UserControl
但问题是相同的 - 如果我将 MouseDown
事件设置为 UserControl
,其中的标签将阻止单击控件本身。
如果我设置为Label.Enable = false
,它可以解决该问题,但会生成另一个 - Label
上的文本变为灰色
,并且该属性我无法覆盖(我需要黑色文本,当某些事件
发生时需要红色文本)。
最佳答案
您可以做的就是在 Label
中传播您的 MouseDown
事件
,以调用 MouseDown
面板
的事件
private void panel1_MouseDown(object sender, MouseEventArgs e) {
//Do something here
}
private void label2_MouseDown(object sender, MouseEventArgs e) {
panel1_MouseDown(sender, e);
}
为了区分sender
,您可以将label
事件的sender
保留为相同的(Label
) -不将其更改为Panel
。以防万一您需要在 panel_MouseDown
中进行一些区分。
关于c# - 自定义按钮: Click through label,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34943508/