小白请教winform 问题

lovecai1982 2020-12-04 11:08:29
小白请教个问题:winform label背景灰色 1、鼠标进入背景比如红色;2、鼠标离开,背景颜色还原;3、鼠标点击背景比如蓝色,且一直保持;4、有很多个相同的label要实现相同的功能,且,在第3步时,点击的这个label背景变,其他的不变。当点击其他的label时,之前点击的背景还原。
我现在卡在如何解决第2步和第3步冲突的问题以及如何区分点击的label与未点击的label。
说白了也就是模拟一个button的外观变化。
请大家指点一下,谢谢
...全文
14428 点赞 收藏 6
写回复
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
引用 楼主 lovecai1982 的回复:
小白请教个问题:winform label背景灰色 1、鼠标进入背景比如红色;2、鼠标离开,背景颜色还原;3、鼠标点击背景比如蓝色,且一直保持;4、有很多个相同的label要实现相同的功能,且,在第3步时,点击的这个label背景变,其他的不变。当点击其他的label时,之前点击的背景还原。 我现在卡在如何解决第2步和第3步冲突的问题以及如何区分点击的label与未点击的label。 说白了也就是模拟一个button的外观变化。 请大家指点一下,谢谢
思路错了,不用区分到点击与未点击,可以参考Framework源码,直接在鼠标事件中处理,同步执行点击事件,事件处理前设置背景颜色为想要的点击颜色,事件执行后再改回来
回复
wang_peng 04-16
建议你看看微软的控件源码,你说的这个,在winfrom 中挺麻烦,主要用到的就是鼠标的那几个事件, 什么进出,离开,按下,松开。甚至几个事件并在一起用. 每个操作颜色值都定义好 把控件都在一个集合里,如List< label> ,然后每个操作,都循环一遍所有label,改变其背景
回复
可以试试在MouseUp和MouseLeave事件改变颜色行不
回复
lovecai1982 2020-12-10
引用 2 楼 zijiang001 的回复:
添加一个变量存储最后一次点击过的Label 每次点击Label的时候重置最后一次点击过的Label和当前点击的Label的颜色 并设置最后一次点击过的Label为当前点击的Label 只是一个思路,解决问题的方法有很多,供参考
谢谢,这让我想到了万能的Tag
回复
zijiang001 2020-12-04
添加一个变量存储最后一次点击过的Label 每次点击Label的时候重置最后一次点击过的Label和当前点击的Label的颜色 并设置最后一次点击过的Label为当前点击的Label 只是一个思路,解决问题的方法有很多,供参考
回复
我有一个笨办法 : 点击某个label时 先把所有label背景色还原 然后再设置点击的这个label的背景色
回复
相关推荐
发帖
组件/控件开发
创建于2007-09-28

8838

社区成员

.NET技术 组件/控件开发
申请成为版主
帖子事件
创建了帖子
2020-12-04 11:08
社区公告
暂无公告