在form里面 我要使用好多文字说名 但是label多了 每次重绘的时候 都好慢 而且刷屏的感觉 请问怎么解决?

解决方案 »

  1.   

    你可以用一个Control类或UserControl类来继承一个新的控件来代替Label控件,打开它的双缓冲绘制就行了,这样问题就会基本解决.
      

  2.   

    为什么要重绘label,label多了只是加载的时候会变慢,重绘的时候不要重绘label就可以了
      

  3.   

    label有属性可以禁止重绘吗?
      

  4.   

    hbxtlhx(平民百姓) 可以给个具体的例子吗/ 谢谢
      

  5.   

    例子倒是有,但是用尽量少的控件才是减少"慢"的感觉的方法,但是我的意思的代码如下:
    public partial class LabelEx : Control
    {
    public LabelEx()
    {
    this.DoubleBuffered = true;
    }
    protected override void OnPaintBackground(PaintEventArgs e)
    {
    if (this.DesignMode)
    {
    base.OnPaintBackground(e);
    }
    }
    protected override void OnPaint(PaintEventArgs e)
    {
    base.OnPaint(e);
    StringFormat format = new StringFormat();
    format.LineAlignment = StringAlignment.Center;
    format.Alignment = StringAlignment.Center;
    e.Graphics.FillRectangle(SystemBrushes.Control, this.ClientRectangle);
    e.Graphics.DrawString(this.Text, this.Font, SystemBrushes.ControlText, this.ClientRectangle, format);
    }
    }