小弟刚学习C#,c#怎么单击窗体依次变色,下面是我的源码,不知道哪里出错了,请各位大神看下!
程序效果就是,运行时,窗体开始时白色的,用鼠标点击窗体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 下面就划红色的线条 了, 就出错了
}
}
}
--------------------编程问答-------------------- 你用你发帖的时间去看看if语句也就明白是怎么回事了
--------------------编程问答-------------------- 哥们用bool flag 来标识,颜色是否改变..然后通过if 切换颜色. --------------------编程问答-------------------- 一个数组加一个标示为够了
--------------------编程问答-------------------- 谢谢,我去试下 --------------------编程问答-------------------- 可能this.BgColor返回的不是颜色 --------------------编程问答-------------------- 我感觉if语句是对的啊! --------------------编程问答-------------------- 那是哪里出错了呢! --------------------编程问答-------------------- VS2010中不会报错啊 --------------------编程问答--------------------
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++;
}
帮忙看下,现在没有出错了,但是不会单机窗口不会出现红色了,直接变成蓝色了,这是为什么呢
下面是源码!
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;
}
}
}
}
--------------------编程问答--------------------
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;
}
我不是写了么,伪代码而已,稍微修改下就可以了啊。
我觉得你需要打好基础了!
--------------------编程问答--------------------
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;
}
}
点击按钮 窗体换色按照红色绿色蓝色 一直变换。。希望有帮助 --------------------编程问答--------------------
当然单击不会变成红色了,因为程序执行的很快,单击后执行this.BackColor = Color.Red;,刚要变成红色,
执行
if (this.BackColor == Color.Red)
{
this.BackColor = Color.Blue;
}
所以定格蓝色
--------------------编程问答--------------------
--------------------编程问答--------------------
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;//恢复默认值,不然数组索引会越界
}
}
--------------------编程问答-------------------- 菜鸟学习。。。。学习中 --------------------编程问答--------------------
private void color()
{
this.BackColor = Color.Transparent;
if (this.BackColor == Color.Transparent)
{
this.BackColor = Color.Blue;
}
else if (this.BackColor == Color.Blue)
{
//红色
}
//依次判断吧
}
private void btn1(object sender, MouseEventArgs e)
{
this.BackColor = Color.Red;
if (this.BackColor == Color.Red) {
this.BackColor = Color.Blue;
}
}
你在这里断点就知道有没有变为红色了 其实变了红但是下面变为了蓝
补充:.NET技术 , C#