控件描绘

.Net技术 码拜 9年前 (2016-06-06) 1078次浏览
本人定义了一个小控件,上面会实时刷新数据,然后本人再form上部署了25个这个控件。
由于控件size比较大一屏肯定显示不下。用滚动条来拖着看。
本人是想把不显示出来的控件暂时停止刷新优化下,有什么办法可以判断控件不在窗体的显示范围内。
解决方案

10

可以借鉴之句

this.ClientRectangle.Contains(button3.Location);

10

自定义控件在”滚动“容器可见范围之外,但是不一定就不在窗体的可见范围之内。
不知道你的控件树的嵌套结构。总之你要根据父控件来判断它应不应该刷新。例如滚动条的 top、height 说明了可见区域,例如 top 为1000,height 为500,那么只有那些 y 坐标在 1000 到 1500以内的自定义控件才是可见的。

20

任何控件需要重绘时都会触发 Paint 事件
只需在 Paint 事件响应中根据 e.ClipRectangle 来决定绘制的内容
form 中随滚动条移出 form 可视区域的控件,是不会被触发 Paint 事件的
而当重新出现在可视区域时才会触发 Paint 事件
所以本人不知道你们在讨论什么

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明控件描绘
喜欢 (0)
[1034331897@qq.com]
分享 (0)