Winform显示时闪动问题

wuzhijie 2005-07-13 09:39:22
Winform界面由四个groupbox组成,在加载打开这个界面时会很明显的看到控件的显示先后过程,怎么样才能让他一次显示,不要有先后的过程
...全文
485 30 打赏 收藏 转发到动态 举报
写回复
用AI写文章
30 条回复
切换为时间正序
请发表友善的回复…
发表回复
sqfeiyu 2005-08-04
  • 打赏
  • 举报
回复
試試:將Form的Visible設為fase,FormLoad時再顯示
wuzhijie 2005-08-04
  • 打赏
  • 举报
回复
问题仍然
无奈结贴
qpl007 2005-07-27
  • 打赏
  • 举报
回复
InitializeComponent()里的代码不要随便改,改了也没用
hope_xt 2005-07-27
  • 打赏
  • 举报
回复
是不是数据加载的时候有点慢才导致控件显示缓慢,看看Application.DoEvent()能不能解决问题让OnPaint时间顺利执行,或是再开一个线程来处理加载数据,让主线程画控件。
wuzhijie 2005-07-27
  • 打赏
  • 举报
回复
To:qpl007(蓝色闪电)
没改就这样了,现在也不知道什么原因。
wuzhijie 2005-07-25
  • 打赏
  • 举报
回复
很感谢大家的回复!

我的电脑是赛扬2.4G+512M内存,应该不算很差吧,可能是 Nintiger(九虎) 说得对。我看了
InitializeComponent() 里的代码,顺序很乱,本来该在一起的,里面却分几个地方放,我是不是应该根据我需要的顺序,重新整理 InitializeComponent() 里面的代码呢?
zhilunchen 2005-07-23
  • 打赏
  • 举报
回复
哪多半是你的机器的问题
marvelstack 2005-07-23
  • 打赏
  • 举报
回复
try
=====
Control.SuspendLayout 方法临时挂起控件的布局逻辑。
=============
控件的布局逻辑被挂起,直到调用 ResumeLayout 方法为止。

当调整控件的多个属性时,将先后使用 SuspendLayout 和 ResumeLayout 方法取消多个 Layout 事件。例如,通常先调用 SuspendLayout 方法,然后设置控件的 Size、Location、Anchor 或 Dock 属性,最后调用 ResumeLayout 方法以使更改生效。

=====
Control.ResumeLayout 方法恢复正常的布局逻辑。
Nintiger 2005-07-23
  • 打赏
  • 举报
回复
我估计你的问题是你设定一个属性1给一个CONTROL,然后你紧跟着把这个CONTROL的属性设成属性2了,你想要的是属性2,所以应该把属性1去掉。
wuzhijie 2005-07-23
  • 打赏
  • 举报
回复
我们是把窗体在主窗体的一个panle里显示的,所以没有,shou()的

Form2 frm = new Form2();
this.panel.Controls.Add(frm);
frm.Visible = true;

我把所有的数据加载放在Form2的构造函数里的
可是还是不行
Werdong 2005-07-23
  • 打赏
  • 举报
回复
例如Form2是Form1的子窗体

Form2 frm = new Form2();
frm.DoLoad(); //Form2类中为public的函数
frm.MdiParent = this;//(Form1)
frm.Show();

在上面的DoLoad()中完成Form2中所有要完成的操作,相当于代替了Form2
的Load事件的大部分功能(有时候没法完全代替),这样应该快一些。
lenlong 2005-07-23
  • 打赏
  • 举报
回复
try:

把四个groupbox放在panle里在内存中构建好,然后再一次性全部显示出来
——
1、panle.visible = false;
2、在panle上构建groupbox
3、panle.visible = true;

用这个方法吧,应该是最最最最最好的想法
wuzhijie 2005-07-23
  • 打赏
  • 举报
回复
Werdong(知音果) :“在显示窗体之前,将应该填充的数据填充完毕,然后一次显示出来”
具体应该怎么做,怎样才能让它一次显示出来?谢谢!
Werdong 2005-07-20
  • 打赏
  • 举报
回复
在显示窗体之前,将应该填充的数据填充完毕,然后一次显示出来,如果还是很慢的话,电脑的配置可能是低了点
qpl007 2005-07-19
  • 打赏
  • 举报
回复
try:

把四个groupbox放在panle里在内存中构建好,然后再一次性全部显示出来
——
1、panle.visible = false;
2、在panle上构建groupbox
3、panle.visible = true;
wuzhijie 2005-07-19
  • 打赏
  • 举报
回复
等待中。。。
wuzhijie 2005-07-19
  • 打赏
  • 举报
回复
楼上的方法还不是不行
wuzhijie 2005-07-18
  • 打赏
  • 举报
回复
还没解决,期待高手相助
wuzhijie2002 2005-07-14
  • 打赏
  • 举报
回复
顶起来
zgtt 2005-07-13
  • 打赏
  • 举报
回复
防止多次重画
加载更多回复(10)

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧