winform程序加背景图片,程序变卡。

deyter 2009-07-24 04:04:50
我在form中用下面的语句加背景图,程序就会变得有点卡,background.jpg是张1440*900的图片。

this.BackgroundImage = Image.FromFile("background.jpg");

请问下如何正确的加背景图呢,谢谢。
...全文
925 19 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
kangnixi 2009-07-28
  • 打赏
  • 举报
回复
这个,实习的时候老师跟我们讲过,一个程序的背景图片不能太大了,不管采取什么措施,程序加载起来都会很慢,而且程序占的空间太大,图片太大且用加载的方式绝对不可取的。建议楼主先压缩图片,有很多压缩图片的工具的。压缩图片后,将图片添加到项目RESOURCES,这样每个窗体都是引用资源里面的背景图片,窗体多的时候,这个办法的优势立刻显现出来了。
风之影子 2009-07-28
  • 打赏
  • 举报
回复
在你窗口的构造方法里加上如下三行代码:



this.SetStyle(ControlStyles.AllPaintingInWmPaint, true);
this.SetStyle(ControlStyles.DoubleBuffer, true);
this.SetStyle(ControlStyles.UserPaint, true);
  • 打赏
  • 举报
回复
form里的其他控件背景有没有透明的?有的话而且面积比较大的话,一定会卡。
fengqieer1986 2009-07-28
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 rfezgc 的回复:]
在后台开个线程,然后预先加载图片,但不要显示出来,PictrueBox就有两个这样的属性和方法,一个是加载的,另一个是显示的
用backGround得不到完全的控制,最后还是自己开个线程,自己手工放同步事件,这样你能确定在何时加载和显示
[/Quote]
顶,这样比较好
c520120 2009-07-28
  • 打赏
  • 举报
回复
主要想要修改图片的大小 图片大的话怎么弄都会卡的
RFEZGC 2009-07-28
  • 打赏
  • 举报
回复
在后台开个线程,然后预先加载图片,但不要显示出来,PictrueBox就有两个这样的属性和方法,一个是加载的,另一个是显示的
用backGround得不到完全的控制,最后还是自己开个线程,自己手工放同步事件,这样你能确定在何时加载和显示
sageking2 2009-07-25
  • 打赏
  • 举报
回复
还是用3楼的方法好,微软添加图片的方法肯定比我们强。
品铭工作室 2009-07-24
  • 打赏
  • 举报
回复
用异步加载(后台线程加载)
journeydj 2009-07-24
  • 打赏
  • 举报
回复
把图片放到资源文件中
hecker728 2009-07-24
  • 打赏
  • 举报
回复
1440*900???

明显是你的图片太大了
ztenv 2009-07-24
  • 打赏
  • 举报
回复
修改图片的大小是关键,太大了肯定会慢,
libolei 2009-07-24
  • 打赏
  • 举报
回复
先把图片加载到程序中来 再赋值给背景图

bitmap bm = new Bitmap(路径);

bitmap newBm = new Bitmap(bm);

bm.Dispose();

然后把 newBm 赋值背景图
zhantianyou 2009-07-24
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 psho78 的回复:]
我也碰到过这样个事情,我放的是个海龟图,我问老师,老师说,你放个海龟当然慢了咯……(呵呵,真风趣)
[/Quote]

這個老師真神!不過說得又是真理,海龟確實跑得慢。
linbiao523 2009-07-24
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 psho78 的回复:]
我也碰到过这样个事情,我放的是个海龟图,我问老师,老师说,你放个海龟当然慢了咯……(呵呵,真风趣)
[/Quote]
幽默
psho78 2009-07-24
  • 打赏
  • 举报
回复
我也碰到过这样个事情,我放的是个海龟图,我问老师,老师说,你放个海龟当然慢了咯……(呵呵,真风趣)
csl_zm007 2009-07-24
  • 打赏
  • 举报
回复
直接form的backGround中添加就可以
anguslaigz 2009-07-24
  • 打赏
  • 举报
回复
可能图片像素太高了
qqiuzaihui 2009-07-24
  • 打赏
  • 举报
回复
使用双缓冲试试

111,097

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧