首先申明我用的是winform
其次在代码中控制visible是必须的。

解决方案 »

  1.   

    控制visible是不会慢的。估计是你代码其他地方的问题。
      

  2.   

    this.SuspendLayout();
    ....
    this.ResumeLayout(false);
      

  3.   

    没有这么慢啊,你在什么时候label1.visible = false的?
      

  4.   

    如果是label的问题
    实在不行,你的那些LABEL动态生成吧
      

  5.   

    to dajianshi(拔剑四顾心茫然) 你的方法还是没有用。我把false改为true也没有用。
      

  6.   

    to sunyou(sunyou) 因为各奖项的个数是不一样的。我是在切换奖项的时候隐藏了一些label。
      

  7.   

    to songxuehui() ( 
    动态生成控制位置比较麻烦。而且我估计也是没有用的。我个人感觉是.net在界面处理上做的不是很好。
      

  8.   

    sunyou(sunyou) 
    只是简单的设置可见性,没有其他任何的处理,我把timer都停止了。
      

  9.   

    先把界面的刷新停止,然后再执行label1.visible = false的操作,最后恢复界面的刷新就可以了。关键是避免每一个lable的修改都引起界面的刷新动作。
    例如:
    this.SuspendLayout();
    label1.visible = false;
    label2.visible = false;
    label3.visible = true;
    this.ResumeLayout(false);
      

  10.   

    jimh(jimmy) 
    这个方法前面已经有人提过了,我也试过了,没有用的我现在的问题其实是因为背景的问题引起的。现在的问题是我去掉窗体的背景图片就没有问题了。但是这个背景是必须的。所以问题还是没有能解决。
      

  11.   

    更换了背景的类型jpg/bmp都不行。
      

  12.   

    我找了个折衷的方法,但是由于动态换了一下背景,屏幕会闪一下,还是不爽!
    this.SuspendLayout();
    this.BackgroundImage = null;
    label1.Visible = false;
    label2.Visible = false;
    label3.Visible = false;
    label4.Visible = false;
    label5.Visible = false;
    label6.Visible = false;
    label7.Visible = false;
    label8.Visible = false;
    label9.Visible = false;
    label10.Visible = false;
    label11.Visible = false;
    label12.Visible = false;
    label13.Visible = false;
    label14.Visible = false;
    label15.Visible = false;
    label16.Visible = false;
    label17.Visible = false;
    label18.Visible = false;
    label19.Visible = false;
    label20.Visible = false;
    this.BackgroundImage = Image.FromFile(@"E:\work\ypnet\ypcj\Resource\bg.jpg");
    this.ResumeLayout(true);
      

  13.   

    按照 nhyjk(死去活来) 的想法修改了也没有用
    我的图片只有75k而已
      

  14.   

    1.最好不要动态生成,会影响程序的,我觉得!
    2.每次打开前,先编译或生成一下!
    3.适当的优化一下.net!
    4..net是人家的东西,我们也无能为力!
      

  15.   

    在窗口初始化中添加现面的代码就好了SetStyle ( ControlStyles.DoubleBuffer , true ) ; // 设置双缓冲,防止图像抖动
    SetStyle ( ControlStyles.AllPaintingInWmPaint , true ) ; // 忽略系统消息,防止图像闪烁
      

  16.   

    是这样的,
    把你的程序改一下
    this.Controls.Add(this.label1);
    改成label1.Parent = this;
    应该可以改进很多速度
      

  17.   

    代码改成如下:
    屏幕会晃一下,唉。
    Image bg = this.BackgroundImage;
    this.BackgroundImage = null;
    lblTitle.Visible = false;
    lblTitle2.Visible = true;
    lblTitle2.Text = "一 等 奖";
    label1.Visible = false;
    label2.Visible = false;
    label3.Visible = false;
    label4.Visible = false;
    label5.Visible = false;
    label6.Visible = false;
    label7.Visible = false;
    label8.Visible = false;
    label9.Visible = false;
    label10.Visible = false;
    label11.Visible = false;
    label12.Visible = false;
    label13.Visible = false;
    label14.Visible = false;
    label15.Visible = false;
    label16.Visible = false;
    label17.Visible = false;
    label18.Visible = false;
    label19.Visible = false;
    label20.Visible = false;
    label21.Visible = true;
    label22.Visible = true;
    label23.Visible = true;
    label24.Visible = true;
    label25.Visible = true;
    this.BackgroundImage = bg;
      

  18.   

    sunyou(sunyou)的方法基本上解决了问题,也不用再换背景了:)
    不过还是稍微有点晃眼。我就当是机器配置不好吧:)
      

  19.   

    你写这大堆
    label19.Visible = false;
    label20.Visible = false;
    不累么