gpt4 book ai didi

c# - 单击时更改按钮颜色(多次单击/颜色)

转载 作者:太空狗 更新时间:2023-10-30 00:33:03 24 4
gpt4 key购买 nike

我正在尝试制作一组​​ 8x8 按钮,到目前为止它可以正常工作。现在我偶然发现了一个问题。我希望按钮的颜色(背景色)在单击时发生变化。并在再次点击时更改为不同的颜色。

到目前为止,这是我的代码:

namespace WindowsFormsApplication2
{
public partial class Form1 : Form
{
Button[,] btn = new Button[8,8];

public Form1()
{
InitializeComponent();

for (int x = 0; x < btn.GetLength(0); x++)
{
for (int y = 0; y < btn.GetLength(1); y++)
{
btn[x,y] = new Button();
btn[x,y].SetBounds(40 * x, 40 * y, 40, 40);
btn[x,y].Click += new EventHandler(this.btnEvent_click);
Controls.Add(btn[x, y]);
btn[x,y].BackColor = Color.Black;
}
}

/*
btn.Click += new EventHandler(this.btnEvent_click);
btn[x,y].Text = Convert.ToString(x+","+y);
Controls.Add(btn);
btn[x,y].Click += new EventHandler(this.btnEvent_click);
*/
}

private void form1_load(object sender, EventArgs e)
{

}

void btnEvent_click(object sender, EventArgs e)
{
(Control)sender).BackColor = Color.Red;
}
}
}

到目前为止,我只能将颜色更改为红色,并且我已经尝试了多个 if 和 for 语句来第二次更改颜色。

谁能帮帮我?

最佳答案

您好临时您可以使用以下解决方案:

void btnEvent_click(object sender, EventArgs e)
{
Control ctrl = ((Control)sender);
switch (ctrl.BackColor.Name)
{
case "Red":
ctrl.BackColor = Color.Yellow;
break;
case "Black":
ctrl.BackColor = Color.White;
break;
case "White":
ctrl.BackColor = Color.Red;
break;
case "Yellow":
ctrl.BackColor = Color.Purple;
break;
default:
ctrl.BackColor = Color.Red;
break;
}
}

我知道也可以有更好的解决方案,但与此同时你可以使用这个......你也可以根据需要在 switch 语句中添加更多颜色

关于c# - 单击时更改按钮颜色(多次单击/颜色),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13949983/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com