我需要一个标签,每次点击都会做出不同的事情。
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);
由于
答案 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;
}
第一部分在绿色和红色之间切换颜色,第二部分切换可见性。