我有一系列按钮。
当我尝试更改背面颜色时,它不会显示在网络上。
为什么?
Button[] arr = new Button[2];
arr[0] = btn1;
arr[1] = btn2;
for (int i = 0 ; i < arr.length ; i++)
{
arr[i].backColor = System.Drawing.Color.Red;
}
但这很有效:
btn1.backColor = System.Drawing.Color.Red;
从他的回答中添加:
对不起,我是从脑子里写下来的。
这是问题代码:
static Button[] arr;
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
arr = new Button[2];
arr[0] = Button1;
arr[1] = Button3;
for (int i = 0; i < arr.Length; i++)
{
arr[i].BackColor = System.Drawing.Color.Blue;
}
}
protected void Button2_Click(object sender, EventArgs e)
{
for (int i = 0; i < arr.Length; i++)
{
arr[i].BackColor = System.Drawing.Color.Red;
}
}
当我按下Button1时它可以工作,但是当我按下Button2时它不起作用..
为什么?
由于
答案 0 :(得分:1)
修改强>
在按下Button1之前按下Button2时,尚未创建按钮数组,因此无法设置颜色。在Page_Load()
;
另外,我建议不要使用数组,除非你确定需要它们。试试这个。
var btns = new List<Button> { btn1, btn2 };
如果您想添加新按钮,请致电
btns.Add(btn3);
然后,着色看起来像这样简单
foreach (var btn in btns)
btn.BackColor = Color.Red;
答案 1 :(得分:1)
试试这个。
首先决定何时更改按钮的背景颜色。在任何按钮点击事件或页面加载,你想要做的只是调用下面的功能。你的代码是真的。但只需在第二次按键单击时调用设置按钮,或者始终必须先单击第一个按钮。
public void ChangeColor()
{
Button[] arr = new Button[2];
arr[0] = btn1;
arr[1] = btn2;
for (int i = 0; i < arr.Length; i++)
{
arr[i].BackColor = System.Drawing.Color.Red;
}
}
更新答案作为您的问题。
Button[] arr;
protected void btnColor_Click(object sender, EventArgs e)
{
ChangeColorRed();
}
protected void btnColor2_Click(object sender, EventArgs e)
{
ChangeColorGreen();
}
public void ChangeColorRed()
{
SetButton();
for (int i = 0; i < arr.Length; i++)
{
arr[i].BackColor = System.Drawing.Color.Red;
}
}
public void SetButton()
{
arr = new Button[2];
arr[0] = btn1;
arr[1] = btn2;
}
public void ChangeColorGreen()
{
SetButton();
for (int i = 0; i < arr.Length; i++)
{
arr[i].BackColor = System.Drawing.Color.Green;
}
}
此致 AB Vyas
答案 2 :(得分:0)
可能是因为你正在展示btn1和btn2?
好像你正在创建按钮副本。
这个怎么样?
Button[] arr = new Button[2];
arr[0] = btn1;
arr[1] = btn2;
for (int i = 0 ; i < arr.length ; i++)
{
arr[i].backColor = System.Drawing.Color.Red;
arr[i].Show(); //add Show
}
答案 3 :(得分:0)
对不起,我是从脑子里写下来的。
这是问题代码:
static Button[] arr;
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
arr = new Button[2];
arr[0] = Button1;
arr[1] = Button3;
for (int i = 0; i < arr.Length; i++)
{
arr[i].BackColor = System.Drawing.Color.Blue;
}
}
protected void Button2_Click(object sender, EventArgs e)
{
for (int i = 0; i < arr.Length; i++)
{
arr[i].BackColor = System.Drawing.Color.Red;
}
}
当我按下Button1时它可以工作,但是当我按下Button2时它不起作用..
为什么?
由于