首页 新闻 会员 周边

Winform 自定义控件,panel上添加其他控件, panel的click事件被挡住

0
悬赏园豆:20 [已解决问题] 解决于 2016-04-27 13:19

背景是,我想做一个list的显示. Item我用的自定义控件panel上添加了几个picturebox..  这种情况下panel的click事件被挡住了?  有何解决方案.

另外,当鼠标移动某一个panel上时,我想做一个panel被选中的效果,如何实现? 
求大神赐教!

菜鸟昊的主页 菜鸟昊 | 初学一级 | 园豆:142
提问于:2016-04-22 16:20
< >
分享
最佳答案
0

Panel上不要添加控件,直接用GDI+画

收获园豆:20
上帝之城 | 老鸟四级 |园豆:2549 | 2016-04-22 16:24

画的话,感觉效果不是很好(这个panel上我拖了三个picturebox和一个label),而且滚动的时候,画面会抖动..

菜鸟昊 | 园豆:142 (初学一级) | 2016-04-22 16:27

@菜鸟昊: 你用一个用户控件把他们包起来

上帝之城 | 园豆:2549 (老鸟四级) | 2016-04-22 16:29
其他回答(2)
1

1.如果你的pictureBox把panel全部遮住了,通过点panel的边框触发。

2.在picturebox的click事件中调用,panel的onclick事件

 

waiter | 园豆:1000 (小虾三级) | 2016-04-22 16:25

谢谢,我开始也是这样做的,但是如果控件比较多的话,就需要给每个控件进行重复绑定,比较反锁,最终还是选择用GDI+在panel上重绘实现

支持(0) 反对(0) 菜鸟昊 | 园豆:142 (初学一级) | 2016-04-27 13:19
0

1.将你的所有picturebox 和 label或者其它控件的Click事件设置为同一个,然后在此事件中引发panel的 OnClick;

2.被选中效果,其实就是当鼠标移动到panel上的时候,会触发panel的MouseEnter 事件,你在这个事件的方法中,把你想要的控件效果变化写出来就能实现,例如改变背景色。  

绝世南蛮 | 园豆:201 (菜鸟二级) | 2016-04-23 16:37
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册