组合控件的鼠标事件响应

本文分享了一种提高地图控件效率的方法:通过使用AlphaControls组件将不同元素分层绘制。文章详细介绍了从初始遇到的问题到解决方案的过程,包括AlphaPictureBox的正确使用方式及事件响应调整。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近在做一个地图控件,以前做的要绘制一些用户信息点上去,还有行驶轨迹什么的都在同一个图层上面,效率非常低,效果不好。

 

后来想到用支持透明控件的组件来做,不同的元素放在不同层绘制,这样地图移动,或者用户移动的时候之需要刷新部分图层,应该可以大大提高效率。

 

在重写地图控件的时候,使用的是AlphaControls,一开始只是简单的将原来显示地图的pictureBox替换为AlphaPicturebox了,结果地图总是显示不出来,才发现AlphaPicturebox需要放在AlphaForm 或者AlphaPanel中才能正常显示。我还总以为是我的地图绘制过程或图片读取过程有问题,眼泪汪汪的~~~

 

将AlphaPanel作为底层,用AlphaPicturebox填充,地图可以正常显示了,但是地图拖动的事件没有响应,即AlphaPictureBox的MouseDown MouseUp MouseMove事件都没有响应。放了个普通的picturebox上去,都可以响应,查了下,才发现是因为AlphaPicturebox的填充模式为fill所以无响应,原来的鼠标响应事件都应放到AlphaPanel的鼠标响应事件中处理。

 

一个很简单的问题,却折腾了我一天。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值