本人定义了一个小控件,上面会实时刷新数据,然后本人再form上部署了25个这个控件。
由于控件size比较大一屏肯定显示不下。用滚动条来拖着看。
本人是想把不显示出来的控件暂时停止刷新优化下,有什么办法可以判断控件不在窗体的显示范围内。
由于控件size比较大一屏肯定显示不下。用滚动条来拖着看。
本人是想把不显示出来的控件暂时停止刷新优化下,有什么办法可以判断控件不在窗体的显示范围内。
解决方案
10
可以借鉴之句
this.ClientRectangle.Contains(button3.Location);
10
自定义控件在”滚动“容器可见范围之外,但是不一定就不在窗体的可见范围之内。
不知道你的控件树的嵌套结构。总之你要根据父控件来判断它应不应该刷新。例如滚动条的 top、height 说明了可见区域,例如 top 为1000,height 为500,那么只有那些 y 坐标在 1000 到 1500以内的自定义控件才是可见的。
不知道你的控件树的嵌套结构。总之你要根据父控件来判断它应不应该刷新。例如滚动条的 top、height 说明了可见区域,例如 top 为1000,height 为500,那么只有那些 y 坐标在 1000 到 1500以内的自定义控件才是可见的。
20
任何控件需要重绘时都会触发 Paint 事件
只需在 Paint 事件响应中根据 e.ClipRectangle 来决定绘制的内容
form 中随滚动条移出 form 可视区域的控件,是不会被触发 Paint 事件的
而当重新出现在可视区域时才会触发 Paint 事件
所以本人不知道你们在讨论什么
只需在 Paint 事件响应中根据 e.ClipRectangle 来决定绘制的内容
form 中随滚动条移出 form 可视区域的控件,是不会被触发 Paint 事件的
而当重新出现在可视区域时才会触发 Paint 事件
所以本人不知道你们在讨论什么