如何正确处理按钮顶部标签上的事件

本文关键字:事件 标签 顶部 正确处理 按钮 | 更新日期: 2023-09-27 18:13:13

我有一个从Button继承的类。在这个类中,我创建标签,我可以使用自定义按钮标题。我对这些自定义按钮的问题是,当我点击标签什么都没有发生,如果我点击标签外,但仍然在按钮上,它像往常一样工作。为了解决这个问题,我写了:

lblTitle.Click += new EventHandler(LabelClick);

在LabelClick中我写:

private void LabelClick(object sender, EventArgs e)
{
    base.OnClick(e);
}

这工作得很好,但后来我注意到,当我点击标签时,我没有得到点击的点击动画。我对onMouseDown和onmouseup做了同样的事情。

        lblTitle.MouseDown += new MouseEventHandler(LabelMouseDown);
        lblTitle.MouseUp += new MouseEventHandler(LabelMouseUp);
        private void LabelMouseDown(object sender, MouseEventArgs e)
        {
            base.OnMouseDown(e);
        }
        private void LabelMouseUp(object sender, MouseEventArgs e)
        {
            base.OnMouseUp(e);
        }

但是我有时会得到点击两次按钮的效果。所以现在我想知道,当我点击按钮和按钮顶部的标签时,我如何给用户相同的点击动画,而不让按钮点击两次?

提前感谢,如果你要降级这个问题,请留下评论为什么!

如何正确处理按钮顶部标签上的事件

我认为问题在于LabelClick &LabelMouseDown,当您单击在基本按钮中触发它们的标签时,所有这三个事件都会被触发。所以当你创建一个MouseDown事件时,你的click事件会被复制。(这应该是一个评论,但我没有足够的声誉留下评论,希望它会有所帮助:))