哈喽,你好啊,我是雷工!
关于大乐透选择器的实例项目前面已经记录了3篇笔记,这是第4篇;
本篇练习实现手动选号,当点击对应的号码球时,号码球变红色或蓝色或灰色来表示选中或取消选中;
以下为练习笔记。
01 效果演示①:实现功能在红色球区域点击选择球时,点击的球体变成红色,再次点击变灰色;
②:在蓝色球区点击球时,点击球体变成蓝色,再次点击变灰色;
02 编程思路①:编辑点击变色事件,当点击某个球时判断该球的Tag值(设计Tag值表示颜色,0表示灰色;1-表示红色);
②:若Tag=0则为灰色将其改为红色,并将Tag值置1;
③:若Tag=1则为红色将其改为灰色,并将Tag值置0;
④:在红色区域初始化方法IniRedPanel中增加点击事件;
蓝色区域的变色同理;
03 实现代码3.1、点击变色事件
代码如下:
#region 点击选择球变色//红色区域单击事件private void lblRed_Click(object sender,EventArgs e){ Label lbl = (Label)sender; if(lbl.Tag.ToString().Equals("0"))//tag中的值表示颜色0-灰色;1-红色; {lbl.Image = Image.FromFile("Image/red.png");lbl.Tag = "1"; } else {lbl.Image = Image.FromFile("Image/gray.png");lbl.Tag = "0"; }}//蓝色区域单击事件private void lblRed_Click(object sender,EventArgs e){ Label lbl = (Label)sender; if(lbl.Tag.ToString().Equals("0"))//tag中的值表示颜色0-灰色;1-蓝色; {lbl.Image = Image.FromFile("Image/blue.png");lbl.Tag = "1"; } else {lbl.Image = Image.FromFile("Image/gray.png");lbl.Tag = "0"; }}#endregion3.2、增加单击事件
①:在红色区域初始化方法IniRedPanel中增加点击事件;
代码如下:
//增加单击事件,实现颜色切换lbl.Click += new EventHandler(lblRed_Click);②:在蓝色区域初始化方法IniBluePanel中增加点击事件;
代码如下:
//增加单击事件,实现颜色切换lbl.Click += new EventHandler(lblBlue_Click);04 后记以上为点击变色的功能实现,其实该功能类似用一个按钮控制启停,上位机程序中会经常用到;
当然该实现只是一个便于理解的过渡练习,接下来会对该功能进行优化,例如增加点击时文本随底色变颜色,增加美观度;
为了提升复用性和精简重复代码;
大家有更简单的实现思路可以在评论区留言,也可以在交流群内讨论,相互学习,共同进步。