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

时间:2015-05-14 10:46:41

标签: c# label eventhandler

我需要一个标签,每次点击都会做出不同的事情。

 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应该是红色的,可见的应该是假的。 我能用第二个Eventhandler做这个吗?

openAndClose.Click += new EventHandler(open_Click);

由于

3 个答案:

答案 0 :(得分:0)

你应该能够通过拥有一个全局字段来获得你想要的东西,该字段表示标签是否已经被点击过。

简而言之,最初将您的旗帜设置为false,执行类似的操作:

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

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

您可以执行以下操作:

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

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