1.为了增加程序的美观性,用一张图片作为整个程序背景,但是不同窗体之间切换的时候,可明显感觉到窗体上的按钮控件是一个一个显示出来的,而且有时候图片加载的速度也很慢。请问怎么解决这种问题,先谢谢了~
2.还是图片显示的问题,我在ACCESS中存了图片的路径,然后在程序中通过读取这些路径来显示图片,在一个窗口上一次要显示12幅图片,还是存在第一个问题,有些图片不能一下就显示出来,总要延迟零点几秒,请问有什么方法能消除掉这种延迟?
2.还是图片显示的问题,我在ACCESS中存了图片的路径,然后在程序中通过读取这些路径来显示图片,在一个窗口上一次要显示12幅图片,还是存在第一个问题,有些图片不能一下就显示出来,总要延迟零点几秒,请问有什么方法能消除掉这种延迟?
如果你第一个问题在刷新时从文件中读图像,也对性能造成很大的影响,例如:Image.FromFile()就是从文件中读取图像,你可以在启动时读好存入变量,使用时直接从内存中加载,应该可以显著加快速度。
Bitmap bit = new Bitmap(Image.FromFile(filepath))
Graphics g = this.panel.CreateGraphics();
g.DrawImage(bit, new Point(0, 0));
Graphics g = this.CreateGraphics();
g.DrawImage(bit, new Point(0, 0));
Image.FromFile Ticks = 19,281,605.00
ImageFast.FromFile Ticks = 7,557,403.00ImageFast的源码这里
#6楼的兄弟给的代码能够让图片快速显示,同时也能保证按钮的刷新速度,但是就如我所说,图片闪一下就没了。
protected override void OnPaint(PaintEventArgs e)
{
Bitmap bit = new Bitmap(Image.FromFile(@"filepath"));
Graphics g = this.panel1.CreateGraphics();
g.DrawImage(bit, new Point(0, 0));
}