单击时 C# 标签应该做不同的事情

C# label should do diffrent things when clicked

我需要一个标签,每次点击都会执行不同的操作。

 private void open_Click(object sender, EventArgs e)
    {
        for (int i = 0; i < 5; i++)
        {
            builder = new StringBuilder(4);
            builder.Append(zahl1.Text);
            builder.Append(zahl2.Text);
            builder.Append(zahl3.Text);
            builder.Append(zahl4.Text);

            code = builder.ToString();

        }
        if( code== setCode)
        {
            openAndClose.BackColor = Color.DarkGreen;
            setNewCode.Visible = true;

        }
        else
        {

        }

    }

第一次单击时,BackColor 变为绿色,可见为真。 现在,如果我再次单击它,它应该会回到起始位置。 这意味着 BackColor 应该是红色的,visible 应该是 false。 我可以使用第二个事件处理程序来执行此操作吗?

openAndClose.Click += new EventHandler(open_Click);

谢谢

您应该能够通过全局字段来获得您想要的内容,该字段指示标签是否已被事先单击过。

简而言之,最初将您的标志设置为 false,执行如下操作:

EventHandler() 
{
     if(!flag) 
     {
          BackColour = Green
          Visible = true          
     }
     else
     {
          BackColour = Red
          Visible = false          
     }
     flag = !flag
}

附加多个事件处理程序只会每次调用多个事件处理程序。

我认为您甚至不需要额外的布尔值或检查。您可以只检查是否可见然后隐藏,如果不可见则显示

您可以简单地执行以下操作:

if(code == setCode)
{
    openAndClose.BackColor = openAndClose.BackColor == Color.DarkGreen ? Color.Red : Color.DarkGreen;
    setNewCode.Visible = !setNewCode.Visible;
}

第一部分在绿色和红色之间切换颜色,第二部分切换可见性。