自定义按钮:点击标签

Custom button: Click through label

我需要创建自定义 Button - 一个包含 2 个 LabelPanel 以实现漂亮的视觉格式。

但我需要通过 Label 来点击面板来触发 event,例如 MouseDown,或者我需要将 event 分配给两者标签。

我尝试创建 UserControl 但问题是一样的 - 如果我将 MouseDown 事件设置为 UserControl,其中的标签会阻止点击控件本身。

如果我设置为 Label.Enable = false 它解决了那个问题但生成另一个 - Label 上的文本变成 gray 并且 属性 我无法覆盖(我需要黑色文本,当出现 events 时为红色)。

你可以做的是在你的 Label 中传播你的 MouseDown event 来为你的 Panel[调用 MouseDown event

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.

中进行一些区分