c# - 自定义按钮: Click through label

标签 c# winforms events event-handling

我需要创建自定义 Button - 一个带有 2 个 LabelPanel,以实现良好的视觉格式设置。

但是我需要通过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/

相关文章:

c# - 每隔两行更改一次的方程式

c# - Windows 应用程序从包含 XML 数据的网站获取 XML 数据

c# - Windows.Forms.RichTextBox 丢失表格背景颜色

python - 访问绑定(bind)到事件的函数的返回值 (tkinter)

c# - Asp.net 将参数添加到 url 字符串

c# - 代码协定和 ASP.NET MVC Controller 属性

c# - 从 Word 中删除不需要的分节符?

C# 从数据集中填充 DataGridViewComboBoxCell 并从数据库中获取选定的值

JavaScript 右键弹出窗口

events - Facebook API 获取好友创建的事件