自定义按钮:点击标签

Kod*_*dek 2 c# events event-handling winforms

我需要创建 custom Button- a里面Panel有 2 Labels 以获得漂亮的视觉格式。

但是我需要通过Labels单击面板以触​​发event,例如,MouseDown,或者我需要将其分配event给两个标签。

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

如果我设置为Label.Enable = false它可以解决该问题,但会生成另一个 - 文本Label变为gray和该属性我无法覆盖(我需要黑色文本,当events出现某些情况时需要红色文本)。

Ian*_*Ian 6

你能做的就是在你的MouseDown event中传播你的Label呼唤 MouseDown event你的Panel

private void panel1_MouseDown(object sender, MouseEventArgs e) {
    //Do something here
}

private void label2_MouseDown(object sender, MouseEventArgs e) {
    panel1_MouseDown(sender, e);
}
Run Code Online (Sandbox Code Playgroud)

为了区分sender您可以sender为您的label活动保留相同的 ( Label) - 不要将其更改为Panel. 以防万一您需要在panel_MouseDown.