微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在WinForms中如何处理隐形控件?

我试图重写.NET Compact Framework中窗体的OnPaint事件。

到目前为止,我可以用渐变,圆angular矩形等来绘制控件,而这些控件通常不能用于常规控件。

但是,当我想要使控制无形时,我遇到了问题。 现在,我所做的是重新绘制除了那些看不见的控件之外的所有控件。 由于需要一点时间,所以会导致一些闪烁。

有谁知道Windows如何处理绘画“隐形”的控制? 或者你可以build议任何algorithm或方法如何实现这一点。

如何使用FileSystemWatcher监视新驱动器

win32 api是否过时了?

.Net中的asynchronous文件IO

无法强制Webbrowser控件使用当前版本的IE呈现

无法卸载MysqL连接器。净6.9.3,在MysqL.Web.v20.dll失败

System.Diagnostics.Process无法从Windows窗体应用程序中的映射驱动器启动文件

一个编程方式,我可以挂钩到用户login和注销(Windows SBS 2003)的目标是简单的日志logging?

如何防止用户手动更改文件

采用Windows媒体基础的H.264编码

NGEN显示返回在C#winforms中使用Process.Start()运行时,与高位CMD不同的结果

应该有几件事你正在做。

不要画在OnPaint的图形对象。 绘制到后台缓冲区,并在最后绘制到图形。

重写OnPaintBackground并让它什么都不做。

只允许改变的区域无效,而不是整个屏幕,尽可能保持剪切区域的小

如果您将单个控件更改为“不可见”,那么您将更改该控件,并使其无效。 在OnPaint您将执行绘图,省略基于Visibility属性的“不可见”控件。 只有裁剪区域会被更新。 您甚至可以通过检查OnPaint上的传入剪辑区域来进一步进行操作,并且只会困扰绘制逻辑绘制该区域。 虽然这有点复杂,但往往不是必需的。

作为替代,是否可以在适当的控件上调用Invalidate()方法的重载,以减少需要重绘的控件的总数量

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐