把form改成用双缓冲试试
DoubleBuffer=true;

解决方案 »

  1.   

    你用了FromFile,每次都是从图片文件读取,当然慢了。你可以用一个Image对象,在窗口初始化的时候就读取图片并且保留在内存中,然后每次点击的时候直接读取这个Image对象就可以了。而且你用png,图片较大,不如用jpg的。例如
    在窗口构造函数中:
    Image bottom1Image = System.Drawing.Image.FromFile(m_strAppPath + "\\bmps\\TopButton_N.png"); 
    click事件中:this.btnWork.Image = bottom1Image;
      

  2.   


    最主要的不要直接设置this.BackGroundImage,而改为override Form的OnPaint事件,使用mBackGroundImage = System.Drawing.Image.FromFile("...")protected override void OnPaint(PaintEventArgs e)
    {
        base.OnPaint(e);
        e.Graphics.DrawImage(mBackGroundImage, new Point(0, 0));
    }这样就快多了