小白请教winform 问题

lovecai1982 2020-12-04 11:08:29
小白请教个问题:winform label背景灰色 1、鼠标进入背景比如红色;2、鼠标离开,背景颜色还原;3、鼠标点击背景比如蓝色,且一直保持;4、有很多个相同的label要实现相同的功能,且,在第3步时,点击的这个label背景变,其他的不变。当点击其他的label时,之前点击的背景还原。
我现在卡在如何解决第2步和第3步冲突的问题以及如何区分点击的label与未点击的label。
说白了也就是模拟一个button的外观变化。
请大家指点一下,谢谢
...全文
15752 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
KnightWelling 2021-04-22
  • 打赏
  • 举报
回复
引用 楼主 lovecai1982 的回复:
小白请教个问题:winform label背景灰色 1、鼠标进入背景比如红色;2、鼠标离开,背景颜色还原;3、鼠标点击背景比如蓝色,且一直保持;4、有很多个相同的label要实现相同的功能,且,在第3步时,点击的这个label背景变,其他的不变。当点击其他的label时,之前点击的背景还原。 我现在卡在如何解决第2步和第3步冲突的问题以及如何区分点击的label与未点击的label。 说白了也就是模拟一个button的外观变化。 请大家指点一下,谢谢
思路错了,不用区分到点击与未点击,可以参考Framework源码,直接在鼠标事件中处理,同步执行点击事件,事件处理前设置背景颜色为想要的点击颜色,事件执行后再改回来
wang_peng 2021-04-16
  • 打赏
  • 举报
回复
建议你看看微软的控件源码,你说的这个,在winfrom 中挺麻烦,主要用到的就是鼠标的那几个事件, 什么进出,离开,按下,松开。甚至几个事件并在一起用. 每个操作颜色值都定义好 把控件都在一个集合里,如List< label> ,然后每个操作,都循环一遍所有label,改变其背景
三人行我 2021-03-05
  • 打赏
  • 举报
回复
可以试试在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的背景色

8,834

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 组件/控件开发
社区管理员
  • 组件/控件开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧