用C# winform 做一个点灯游戏,按钮上有一个图片,如何设置点击按钮就变为另一张图片,再点又变回来,代码
追问
太感谢你了,不过还是有点小问题,因为我这个是点灯游戏,有许多个按钮,为什么有的需要点两次才会变过来呢?另外,image是不是无法设置图片随着按钮自动调整大小,从而将它全部显示,我的图片只能显示部分
展开全部
能用到的代码楼上都给了,思路可以更简单一些。
首先,你一定已经有了2副图片了吧?假设一个叫pic1,一个叫pic2
其次,设置一个类变量showPic1=true;
每次点击按钮时,在click事件里:
showPic1=!showPic1;//切换状态
//设置按钮图片
if(showPic1)
{
.....
}else{
......
}
首先,你一定已经有了2副图片了吧?假设一个叫pic1,一个叫pic2
其次,设置一个类变量showPic1=true;
每次点击按钮时,在click事件里:
showPic1=!showPic1;//切换状态
//设置按钮图片
if(showPic1)
{
.....
}else{
......
}
更多追问追答
追问
我的代码是这样的,但是不管用,可以帮我找出原因吗?那个数组的我实力太差,呵呵。load加载已经设置好了图片为2.jpg
void but_Click(object sender, EventArgs e)
{ Button but = (Button)sender;
if (but.BackgroundImage== diandeng.Properties.Resources._2)
but.BackgroundImage = diandeng.Properties.Resources._3;
else
but.BackgroundImage=diandeng.Properties.Resources._2; }
追答
打个断点调试一下,看but.BackgroundImage有没有东西
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
把图片转换为BYTE数组保存到按钮的TAG中去,点击的时候把当前的按钮图片保存到1个BYTE数组变量 我命名为PicA,再按钮TAG中保存的图片取去设置为当前的按钮图片,然后把PicA保存到按钮的TAG属性中,这样就可以实现了.
方法有很多,我这个只是很普通的1种
方法有很多,我这个只是很普通的1种
追问
听着好像很复杂啊,我不知道怎么把图片转换为数组,可以给具体代码吗?这部分的就好
追答
长度有限制,我吧图片转换函数发你百度HI里面吧
private void button1_Click(object sender, EventArgs e)
{
Image a = this.button1.Image;
this.button1.Image = this.button1.Tag as Image;
this.button1.Tag = a;
}
private void Form1_Load(object sender, EventArgs e)
{
//给按钮设置背景图片
string ImagePath = @"G:\Users\Administrator\Pictures\未命名.jpg";
string ImagePath2 = @"G:\Users\Administrator\Pictures\未命名2.jpg";
//吧指定路径的图片转为数组
byte[] PicA= imageToByteArray(ImagePath);
//吧数组转换为IMAGE对象
Image a = byteArrayToImage(PicA);
this.button1.Image=a;
//吧指定路径的图片转为数组
byte[] PicB = imageToByteArray(ImagePath2);
//吧数组转换为IMAGE对象
Image b = byteArrayToImage(PicB);
this.button1.Tag = b;
}
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询