程序效果就是,运行时,窗体开始时白色的,用鼠标点击窗体1次,变一次颜色,依次为,变为红,绿,蓝,我感觉是不是应该声明一个颜色的类,我用if语句来判断第一种是否红色,然后才可以显现其他颜色!请大侠,在看看源码!颜色的类是怎么声明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 gaibianbeijingse //命名空间为改变背景颜色 {    public partial class  Form1 : Form  // class 对象  form 继承       我感觉这里应该在声明一个颜色的类,下面才不会出错,但是又不知道怎么声明!    {        public Form1()        {            InitializeComponent();        } 
​        private void Form1_Load(object sender, EventArgs e) // 这里什么也没有写,窗体初始时的颜色         {        } 
​        private void btn1(object sender, MouseEventArgs e)       //这里btn1 用鼠标点击事件,           {            this.BackColor = Color.Red;       // 单击窗体后,变为红色            if(this.BackColor == Color.Red)   // 到这里说red 不能为颜色。出现错误了!我想用if语句来改变颜色呢,但是if 语句   red 下面就划红色的线条 了, 就出错了                    }        }    } 

解决方案 »

  1.   

    哥们用bool flag 来标识,颜色是否改变..然后通过if 切换颜色.
      

  2.   

    一个数组加一个标示为够了Color[] cols = new Color[]{Color.Red,Color.Green,Color.Blue};
    int flag = 0;BtnClick()
    {
      if(flag>= cols.Length) flag = 0;
         this.BGColor = cols[flag];
      flag++;
    }
      

  3.   

    可能this.BgColor返回的不是颜色
      

  4.   

    帮忙看下,现在没有出错了,但是不会单机窗口不会出现红色了,直接变成蓝色了,这是为什么呢
    下面是源码!
    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 改变背景色
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }        private void Form1_Load(object sender, EventArgs e)
            {        }        private void btn1(object sender, MouseEventArgs e)
            {
                this.BackColor = Color.Red;
                if (this.BackColor == Color.Red)
                {
                    this.BackColor = Color.Blue;
                }
            }        
        }
    }
      

  5.   

     private void button3_Click(object sender, EventArgs e)
            {
                changeColor(this.BackColor);
            }        private void changeColor(Color col)
            {
                Color newColor;
                newColor = col == Color.Red ? Color.Blue : (col == Color.Blue ? Color.Green : Color.Red);
                setColor(newColor);
                //switch (col.ToString())
                //{
                //    case "Color [Red]":
                //        setColor(Color.Blue);
                //        break;
                //    case "Color [Blue]":
                //        setColor(Color.Green);
                //        break;
                //    default:
                //        setColor(Color.Red);
                //        break;        }
            private void setColor(Color newColor)
            {
                this.BackColor = newColor;
            }
      

  6.   

       public int flag = 0;
     private void button1_Click(object sender, EventArgs e)
            {
                Color[] cols = new Color[] { Color.Red, Color.Green, Color.Blue };
                
              
                   
                    this.BackColor = cols[flag];
                    flag++;
                    if (flag == 3)
                    {
                        flag = 0;
                    }         
                 
            }点击按钮  窗体换色按照红色绿色蓝色 一直变换。。希望有帮助
      

  7.   

     当然单击不会变成红色了,因为程序执行的很快,单击后执行this.BackColor = Color.Red;,刚要变成红色,
                  执行
                  if (this.BackColor == Color.Red)
                {
                    this.BackColor = Color.Blue;
                }
    所以定格蓝色
      

  8.   


    public static Color[] c = { Color.Red, Color.Green, Color.Blue }; //颜色数组,三色就没必要创建类了
            public static int index = 0; //需要用到的数组索引
            private void Form1_MouseClick(object sender, MouseEventArgs e)//窗体单击事件
            {
                if (index == 0)
                {
                    this.BackColor = c[index]; //更改颜色,并修改index的值
                    index++;
                }
                else if (index == 1)
                {
                    this.BackColor = c[index];//同上
                    index++;
                }
                else
                {
                    this.BackColor = c[index];
                    index=0;//恢复默认值,不然数组索引会越界
                }
            }
      

  9.   


    private void color() 
            {
                this.BackColor = Color.Transparent;
                if (this.BackColor == Color.Transparent) 
                {
                    this.BackColor = Color.Blue;
                }
                else if (this.BackColor == Color.Blue) 
                {
                    //红色
                }
                //依次判断吧
            }
      

  10.   


            private void btn1(object sender, MouseEventArgs e)
             {
                 this.BackColor = Color.Red;
                 if (this.BackColor == Color.Red)             {
                     this.BackColor = Color.Blue;
                 }
             }
     
            
    你在这里断点就知道有没有变为红色了  其实变了红但是下面变为了蓝