gpt4 book ai didi

c# - 在控件完成绘制之前显示表单

转载 作者:太空宇宙 更新时间:2023-11-03 11:46:13 28 4
gpt4 key购买 nike

我相当简单的 c# WinForm 窗体上的各种控件(主要是标签和面板)在显示窗体时没有绘制。表格显示后大约半秒,它们就完成了绘制。

有没有简单的解决方法?

更多详情:

绘制最慢的面板显示从 SQL 数据库读取的一些数据。数据被绘制,文本标签和背景不是。该面板包含从数据库中提取的极少量数据。

另一个在窗体出现后完成绘制的面板只包含几个标签、一个文本控件和一个按钮。

此外,此窗体位于另一个窗体之上,该窗体的唯一目的是用半透明背景覆盖计算机屏幕。当我从应用程序中删除此背景表单时,相同的控件仍然无法在显示表单之前完成绘制(但现在它们完成绘制仅大约四分之一秒而不是大约半秒)。

最佳答案

这是标准的 Windows User32 呈现行为。窗体和大部分控件都是单独的窗口。他们每个人都收到一条 WM_PAINT 消息,告诉他们需要自己绘制,这些消息以 Z 顺序逐个传递到每个窗口。当控件自身绘制缓慢时,就会变得很明显。该控件未绘制的矩形及其后面的矩形在短时间内可见。

Windows 窗体中可用的标准双缓冲技术无法解决此问题,您必须对整个窗体进行双缓冲。有可能,我在this thread中的回答向您展示如何。

关于c# - 在控件完成绘制之前显示表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3379465/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com