C#的WinForm编程的一个小问题 题目是:实现一个改变窗体背景颜色的功能

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace 练习1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void btn1_Click(object sender, EventArgs e)
{
this.btn1.BackColor == Color.Red;
}

private void btn2_Click(object sender, EventArgs e)
{
this.btn2.BackColor == Color.Blue;
}

private void btn3_Click(object sender, EventArgs e)
{
this.btn3.BackColor == Color.Green;
}

private void btn4_Click(object sender, EventArgs e)
{
Color[] color = new Color[] { color.Red,color.Blue,color.Green };
for (int i = 1; i < 10; i++)
{
this.BackColor = color[i];
}
}

}
}

出现了以下几个问题:望解决!
错误 1 只有 assignment、call、increment、decrement 和 new 对象表达式可用作语句 E:\学习文档\C#\练习1\练习1\Form1.cs 21 13 练习1
错误 2 只有 assignment、call、increment、decrement 和 new 对象表达式可用作语句 E:\学习文档\C#\练习1\练习1\Form1.cs 26 13 练习1
错误 3 只有 assignment、call、increment、decrement 和 new 对象表达式可用作语句 E:\学习文档\C#\练习1\练习1\Form1.cs 31 13 练习1
错误 4 “System.Array”不包含“Red”的定义,并且找不到可接受类型为“System.Array”的第一个参数的扩展方法“Red”(是否缺少 using 指令或程序集引用?) E:\学习文档\C#\练习1\练习1\Form1.cs 36 49 练习1
错误 5 “System.Array”不包含“Blue”的定义,并且找不到可接受类型为“System.Array”的第一个参数的扩展方法“Blue”(是否缺少 using 指令或程序集引用?) E:\学习文档\C#\练习1\练习1\Form1.cs 36 59 练习1
错误 6 “System.Array”不包含“Green”的定义,并且找不到可接受类型为“System.Array”的第一个参数的扩展方法“Green”(是否缺少 using 指令或程序集引用?) E:\学习文档\C#\练习1\练习1\Form1.cs 36 70 练习1

最好你能运行以下看看是否正确
我是说在不改变颜色个数的情况下,是循环10次这三个颜色,并弹出消息框。
我只能很简单的改了下代码(我的能力有限,改的是第1楼的网友代码):
private void btn4_Click(object sender, EventArgs e)
{
Color[] color = new Color[] { Color.Red, Color.Blue, Color.Green };
for (int i = 1; i < 10; i++)
{
this.BackColor = color[i];
MessageBox.Show(color[i].ToString());
}
}
但是出现了:
System.IndexOutOfRangeException: 索引超出了数组界限。

赋值,用一个等于号。 this.btn1.BackColor = Color.Red;
btn4_Click中,颜色数组有三个元素,循环10次,也会出现问题;追问

还有三个问题存在...

追答

Color[] color = new Color[] { Color.Red,Color.Blue,Color.Green };
Color大小写

追问

还有一个问题:我点击了第四个按钮出现一个以下错误

************** 异常文本 **************
System.IndexOutOfRangeException: 索引超出了数组界限。
在 练习1.Form1.btn4_Click(Object sender, EventArgs e) 位置 E:\学习文档\C#\练习1\练习1\Form1.cs:行号 39

追答

btn4_Click中,颜色数组有三个元素,循环10次,也会出现问题;
for (int i = 1; i < color.Length; i++)
{
this.BackColor = color[i];
}

追问

可是它的程序要加的功能是(循环10次跳出消息框)
这个功能怎么添加代码呢?
麻烦写下,我会多加分的

追答

不明白说的是啥意思? Q9046721

追问

说的是第四个按钮( btn4_Click)点了之后完成的功能是(循环变10次不同的颜色然后跳出消息框)
书上写得更不详细(循环10次跳出消息框),我也不知道是循环什么,上面是我按我的想法说的

追答

Color[] color = new Color[] { Color.Red,Color.Blue,Color.Green,Color. Color.Black ,Color.Pink,Color.White,Color.Yellow,Color.Brown,Color.Gray,Color.Purple};
for (int i = 1; i < 10; i++)
{
this.BackColor = color[i];
MessageBox.Show(color[i].ToString());
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-09-24
我想楼上的已经解决楼主大部分的问题,至于循环十次你的数组元数要达到十个吧,不过就算有十个你也不会看得出明显的变化效果
第2个回答  2011-09-24
int i=0,或是i<11吧,若是int i=1;i<10不就是循环9次?
楼上说的也对,你应该加个timer控件,让这个循环线程先暂停1秒,然后再继续执行

private void btn4_Click(object sender, EventArgs e)
{
Color[] color = new Color[] { Color.Red, Color.Blue, Color.Green };

for (int i = 0; i < color.Length; i++)
{
for (int j = 0; j < 10; j++)
{
this.BackColor = color[i];
MessageBox.Show(color[i].ToString());
}
}
}
相似回答