none
请问一个窗口打开的问题 RRS feed

  • 问题

  • 一个Form里面控件较多,并且要读出数据库提取一些信息后再填充界面,如果直接show()的话,会造成窗口打开时感觉是一个一个控件放上去的,能不能让控件放置完成,信息显示后再,再显示窗口。
    2009年11月9日 3:47

答案

  • 你好!

    可以将初始或构造控件的代码写到可构造函数中,这样调用 Show 时就不会再出再上述问题了。

    知识改变命运,奋斗成就人生!
    • 已标记为答案 YiChun Chen 2009年11月10日 8:38
    2009年11月9日 4:30
    版主
  • 你是否在 Load 事件中执行了些耗时的代码?如果是请写到构造函数中试试。
    知识改变命运,奋斗成就人生!
    • 已标记为答案 YiChun Chen 2009年11月10日 8:39
    2009年11月9日 10:02
    版主

全部回复

  • 可以先加载form,设置窗体属性隐藏,等都加载完毕了(form 构造函数执行完毕)在显示窗体。


    family as water
    2009年11月9日 4:15
  • 你好!

    可以将初始或构造控件的代码写到可构造函数中,这样调用 Show 时就不会再出再上述问题了。

    知识改变命运,奋斗成就人生!
    • 已标记为答案 YiChun Chen 2009年11月10日 8:38
    2009年11月9日 4:30
    版主
  • 可以先加载form,设置窗体属性隐藏,等都加载完毕了(form 构造函数执行完毕)在显示窗体。


    family as water
    不行, 这种方法
    2009年11月9日 4:34
  • 你好!

    可以将初始或构造控件的代码写到可构造函数中,这样调用 Show 时就不会再出再上述问题了。

    知识改变命运,奋斗成就人生!
    稍好一点点,但是还是有闪烁
    2009年11月9日 4:35
  • 你好!
         尝试在窗体的构造函数中开启双缓冲:
    this.SetStyle(ControlStyles.AllPaintingInWmPaint|ControlStyles.UserPaint|ControlStyles.OptimizedDoubleBuffer,true);
    周雪峰
    2009年11月9日 5:18
    版主
  • 你好!
         尝试在窗体的构造函数中开启双缓冲:
    this.SetStyle(ControlStyles.AllPaintingInWmPaint|ControlStyles.UserPaint|ControlStyles.OptimizedDoubleBuffer,true);
    周雪峰
    我狂晕,还是存在。。。囧!! 难道是我人品有问题?
    2009年11月9日 10:00
  • 你是否在 Load 事件中执行了些耗时的代码?如果是请写到构造函数中试试。
    知识改变命运,奋斗成就人生!
    • 已标记为答案 YiChun Chen 2009年11月10日 8:39
    2009年11月9日 10:02
    版主