如何在标签后面创建一个不可见(可点击)按钮?

问题描述 投票:0回答:1

我正在尝试在标签后面设置一个不可见的按钮。

This is what I achieved so far.

其背后的想法是,如果我单击一个数字的下部,它应该减少;如果我单击一个数字的上部,它应该增加,这就是我想要实现的。

这是使按钮不可见的方式:button2.FlatStyle = FlatStyle.Flat;button2.FlatAppearance.BorderSize = 0;button2.FlatAppearance.MouseDownBackColor = Color.Transparent;button2.FlatAppearance.MouseOverBackColor = Color.Transparent;button2.BackColor = Color.Transparent;

唯一的问题是,如果我将按钮移至标签,它将隐藏标签。 (我尝试过“发送回去”按钮,但是当我这样做时,它不再可单击。)如果您有解决方案,请与我分享:)

c# button label windows-forms-designer invisible
1个回答
0
投票

Bubbling up events在Winforms中不受标准支持,在WPF中默认可用,对于您的问题,更简单的解决方案是处理标签的MouseClick事件

    private void numLabel_MouseClick(object sender, MouseEventArgs e)
        {
            int num = 0;
            int.TryParse(numLabel.Text, num);
            if (e.Y > numLabel.Size.Height / 2) num--; else num++;
            numLabel.Text = num+"";
        }

0
投票

您遇到空域问题,如果看到标签,将无法单击该按钮。为什么不尝试使用标签MouseUp事件获取鼠标坐标,然后比较它在标签中的位置,以确定是增加还是减少标签。

类似这样的东西:

private void label1_MouseUp(object sender, MouseEventArgs e)
    {
        int temp;

        if (e.Y < label1.Height / 2)
            { if (int.TryParse(label1.Text, out temp))
                label1.Text = (temp += 1).ToString();}
        else
        {
            if (int.TryParse(label1.Text, out temp))
                label1.Text = (temp -= 1).ToString();
        }
    }
© www.soinside.com 2019 - 2024. All rights reserved.