我正在尝试在标签后面设置一个不可见的按钮。
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;
唯一的问题是,如果我将按钮移至标签,它将隐藏标签。 (我尝试过“发送回去”按钮,但是当我这样做时,它不再可单击。)如果您有解决方案,请与我分享:)
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+"";
}
您遇到空域问题,如果看到标签,将无法单击该按钮。为什么不尝试使用标签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();
}
}