窗体闪烁的问题

问题描述

在窗体上有很多自控件,因为重绘的原因开始载入窗体时闪烁的很严重.试过用双缓冲,没有效果.我想在SHOW之前隐藏窗体,SHOW()之后在显示,但是没有成功.当调用SHOW()时,进入了消息处理的WndProc函数.怎样才能在WndProc里拦截窗体显示的消息呢,或者还有什么别的好方法吗

解决方案

解决方案二:
在线等,帮帮忙吧
解决方案三:
最大化最小化
解决方案四:
什么原因闪烁?确定是重载吗?很多原因都能造成闪烁的阿
解决方案五:
我也遇到过类似的问题,没有办法,后来只好改成多个Tab,以后界面设计的时候就要考虑到这样的情况
解决方案六:
引用2楼succeeddyf的回复:

最大化最小化

什么意思引用3楼strife的回复:

什么原因闪烁?确定是重载吗?很多原因都能造成闪烁的阿

应该是重绘吧.重载应该不会出现闪烁吧.引用4楼jamesfay的回复:

我也遇到过类似的问题,没有办法,后来只好改成多个Tab,以后界面设计的时候就要考虑到这样的情况

我也不想啊,我只是改善这个问题,程序已经写了一半了,头才让解决这个问题
解决方案七:
如果你确认自定义控件本身不存在闪烁问题的话,那么请考虑你加载控件太多的时候采用:SuspendLayout();然后ResumeLayout();
解决方案八:
引用6楼csharp_start的回复:

如果你确认自定义控件本身不存在闪烁问题的话,那么请考虑你加载控件太多的时候采用:SuspendLayout();然后ResumeLayout();

试过了,不行.不知道怎么才能先隐藏窗体.应该在WndProc截获什么信息呢
解决方案九:
必要时Invalidate()
解决方案十:
关注一下

时间: 2024-09-23 04:58:49

窗体闪烁的问题的相关文章

邮件-c# winform 窗体保存值的问题

问题描述 c# winform 窗体保存值的问题 主窗体 form1 上面有个按钮button1 点击new到 from2 在form2中 有一个定时器 启动后 每30分钟 发送一封邮件 点击保存后from2 要变隐藏窗体 from2的事件一直在执行 现在回到form1 界面 又点击buttion1 new 到from2 又可以开始定时器了 所以说重复了 用单例模式有问题 隐藏的显示不了 我的目的就想 在form2 隐藏之后 点击from1 的button 1 不会重复启动form2 解决方案

急!C# WinForm 子窗口关闭,现象1偶尔发生系统其它程序前置;现象2主窗口闪烁

问题描述 我们的程序基于多级WinForm框架,主WinForm子ClientForm开启一个子CreateForm输入工程名,单击确定或按回车关闭CreateForm时,现象1偶尔发生系统其它程序前置:现象2每次主窗口会闪烁.请问是怎么回事?怎么解决?privatevoidCreateProject(){stringstrProjectName;NewProjectnewproj=newNewProject();newproj.ShowDialog();if(newproj.DialogRes

界面开发(五)--- 界面优化

在上一篇界面开发中,我讲解了将系统界面还原,还原窗体的本来面貌.但是有的博友提出 窗体闪烁,这确实是个问题,原来自己开发的时候也是出现了这个问题.花了两天的时间,重 要修改了个大概,将窗体绘画的次数和窗体的刷新程度进行了修改.首先看看效果: 这是主窗体,在主窗体中不仅修改了窗体的刷新率,而且添加了一个自定义的窗体按钮,使 用了很多的颜色来显示,模仿了Foxmail的界面显示,但是对于除了主窗体外的其他窗体,这些 是不存在的.如下图显示的子窗体: 实现的原理和原来的一样,只不过在原来绘画的基础上减

如何避免多控件窗体重新布局时闪烁

适用场景: 需要在某容器控件中动态装载多个子控件,而且该容器控件可能需要改变WindowFormState,即从Normal转变为Maxmized,或者是其他状态转换啦, what ever :) 如果没有应用任何特殊处理,你就会发现,当容器控件状态转换时,其上的子控件在经过一阵狂闪之后(可能背景控件颜色和自身相互交替出现),最终恢复至平静; 这种情形当然无论是程序员自己和客户都不愿意看到的 ok,废话一通之后,咱们开始解释原因,以及考虑解决方案 为什么会闪烁? 因为窗体控件状态转换时,wind

xp系统下半透明窗体(即A.EXE)放置在(B.EXE)用opengl绘制的客户区中出现闪烁

问题描述 xp系统下半透明窗体(即A.EXE)放置在(B.EXE)用opengl绘制的客户区中出现闪烁 请问在xp系统下,用c++实现的半透明窗体(即A.EXE)放置在(B.EXE)用opengl绘制的客户区中,为什么会出现闪烁的问题?是什么原因?有没有解决的办法 解决方案 opengl是直接写屏的,所以有冲突,除非关掉显卡的视频加速.

mdi子窗体加载闪烁

问题描述 mdi子窗体(继承自定义的窗体),在MDI容器中加载时很慢,闪烁严重,如何解决?声明,如果子窗体直接show加载,不会闪烁,也就是说与子窗体的控件多少无关,只与是否用mdi加载有效. 解决方案 解决方案二:weiluofen.dll参考这个插件,解决子窗体问题解决方案三:是weifenluo.dll参考地址:解决方案四:问题究竟出在那,怎样解决呢?

新手求教.NET做窗体应用绘图时,窗体内的Graphics重画,显示闪烁的问题

问题描述 我设计的是:创建Graphicsgf,在Form窗体的paint事件里绘图(图元比较多),设计MouseWheel事件获取滑轮滚动值Form窗体内的坐标缩放,同时Form窗体重画,结果可以做到这个gf在Form内显示,并且随着滑轮放大缩小,就是放大缩小时Form窗体内闪烁,图像呈现也不是瞬间完成,感觉一卡一卡的网上大多数都说利用双缓存技术可以解决,于是我在Form窗体内构造函数内加入this->SetStyle(ControlStyles::OptimizedDoubleBuffer|

使你的窗体保留在桌面的最上面

当我们想让一个窗体保留在桌面的最上面时,可以定义窗体的FormStyle属性,使窗体保持在最上面.但是,使用这种方法后,在切换窗体的模式时,窗体将闪烁.为了避免切换窗体模式时的闪烁,可以使用Windows API函数SetWindowPos来解决这一问题,使用方法如下:SetWindowPos(Form1.handle, HWND_TOPMOST, Form1.Left, Form1.Top, Form1.Width, Form1.Height,0);用实际窗体名称代替"Form1",

使用自定义验证组件库扩展 Windows 窗体

window 摘要:数据验证是确保正常的数据捕获以及后续处理和报告的关键步骤.本文介绍了 Windows 窗体固有的程序验证基础结构,并以此为基础开发了用于提供更高效验证功能的自定义验证组件库,该验证功能与使用 ASP.NET 的验证控件相似. 下载 winforms03162004_sample.msi 示例文件. 本页内容 引言 Windows 窗体验证的主要功能 程序验证与声明性验证 建立设计时支持 模仿是最真诚的恭维 必需字段验证程序简介 BaseValidator:分治法 一个放便士,