C# winForm 窗体加载会卡顿一下,不流畅,用户体验不好

C# 一个窗体,几张picbox(为了好看,button全用picbox),控件都是编辑的时候就画好的,不是后动态添加的,另外主背景也是图片,窗体比较大,1080*1920的界面。
就静态页面,没有函数方法,说代码有问题的别回复,i7的主机,硬件也没问题。
窗体加载有控件的地方加载会觉得明显的停顿一下。
如果能根治,即直接加载顺畅更好。
如果靠代码改善,求如何再窗体控件加载完整后,再状体显示?

问题出在主背景上,button也没必要使用pictureBox,设置成flat把边框去掉就好了,也可以自定义一个按钮,用图片去画。建议你改三个地方,再试试:

    在窗体最后面放一个panel,用panel作为背景,把panel布满窗体,panel背景图片作为你的窗体背景图片

    窗体用userControl来画,动态呈现他,userControl我觉得比Form还要优秀一点,在效率和效果上,让Panel去Add他,切换就控制他的Visible属性。

    计算分辨率,不用固定尺寸,在size_change事件中写尺寸计算代码,每个控件放panel中按比例呈现

说代码有我没有问题谁说得清楚,也没看到你的,但很明显你的窗体在缓冲图片,把winform设置背景你会发现是件很呆的事情,所谓的双缓冲纯属扯淡,微软双缓冲了窗体,没有缓冲控件,还是一码事

追问

    改Panel为背景,上面画控件会有方方正正的底色,我的图片是带圆角的png

    用按钮也是会,鼠标移动到按钮上也是出现方方正正的背景,及图片周边透明块都显示出来控件背景



    下面这个是用按钮的,鼠标过去,整个按钮框显示了;背景用Panel的话,不用鼠标指过去,所有控件都周边显示了。下面两张是用pictureBox的,不会出现这种情况,就是加载的时候,会有些迟钝


追答

我真晕了,你用PS把图片处理好,图片处理工作千万别让Wnform去做,他很差劲的。自定义控件窗体背景可以设置成透明的。你这窗体不卡就怪了,自定义按钮用图片做啊,两个突变剁成动态效果,何必真得去用按钮,按钮也可以你没设置正确,Flat属性可以设置透明得

温馨提示:内容为网友见解,仅供参考
无其他回答

C# winForm 窗体加载会卡顿一下,不流畅,用户体验不好
问题出在主背景上,button也没必要使用pictureBox,设置成flat把边框去掉就好了,也可以自定义一个按钮,用图片去画。建议你改三个地方,再试试:在窗体最后面放一个panel,用panel作为背景,把panel布满窗体,panel背景图片作为你的窗体背景图片 窗体用userControl来画,动态呈现他,userControl我觉得比Form...

C# winform程序 MDI窗体在刚开始加载界面时 偶尔会出现界面 卡屏或是...
你在load方法里写的内容处理需要消耗比较多的时间,这样打开窗体时候就会出现卡屏或者假死,如果是这样你可以把方法放shown里,这样界面就会先出现后执行你要的方法。

c#进行winform应用开发,如何能加快窗口控件的加载速度,甚
面对加载慢的问题,首先需分析其原因。如果是数据量过大导致,则应采用异步加载技术,以减轻系统负担。另一方面,如果加载慢是由于窗口控件数量过多引起,则需重新审视窗口布局设计,深入了解用户操作习惯,合理拆分和整合功能。避免将不同功能的控件集中在单一窗口中,而是将其分散到多个窗口中,以提升用户体...

C#编写的WinForm程序,运行一段时间后越来越卡,怎么办?
肯定是你代码逻辑有问题啦~最简答的一个方法 GC.Collect(); 垃圾回收 最好检查一下你的所有变量的作用域 并且检查一下不要再循环中初始化对象那样很慢 你不贴代码谁也不知道怎么回事 对象被dispose()不见得资源就全被释放了,.net依据一定机制去释放资源,对象被dispose()了也不会马上就释放资源...

C#WinForm实现Loading等待界面
这个给用户的体验也不是很好,我这里想加一个Loading的进度条。项目启动的时候,加载进度条,界面UI加载完毕,进度条消失。文末有资源,可下载。新建一个项目,添加一个窗体。窗体中添加一个pictureBox,添加Loading图片。设置窗体属性 StartPosition :CenterScreen在屏幕中心显示 TopMost:True置顶显示 ShowInTask...

C#关于winform窗口控件过多,显示慢的问题?
如果一个窗口含有5个页的选项卡,每个页上有20个控件,这样在窗体首次显示时就要加载100个控件,所以我想可不可以修改窗体的InitializeComponent()方法,首次打开窗体只生成第一页的20个控件,剩下的打开选项卡时再生成,这样就可以减少80个控件的生成,我想问... 展开 小...

c# winform 窗口控件多,就会加载很慢???
2011-02-14 C#关于winform窗口控件过多,显示慢的问题? 2 2015-06-02 C# winForm 窗体加载会卡顿一下,不流畅,用户体验不... 3 2011-06-20 C#Winform窗体加载时速度好慢,运行时半天才出来,我估... 2016-04-30 c# winform我找出但不理解动态生成控件慢的原因 2014-10-29 winform 用chart显示曲线数据...

最近VS运行C#开发的winform程序特别慢,打开一个窗体都得1分钟,但直接...
直接打开Debug是直接运行编译好的程序,肯定不会卡啊。估计是每次启动VS后都会重新分析系统环境,所以比较慢。重装下吧,比较省事的。

c# winForm中如何提高界面加载速度
你怎么会用到1000个button,应该有其它替代方式的,如果一定要用的话,用 panel1.Controls.AddRange试一下(添加按钮之后再把panel放到窗体上去)

C# WinForm窗体控件加载时闪动怎么解决?
protected override void WndProc(ref Message m){ if (m.Msg == 0x0014) \/\/ 禁掉清除背景消息 return;base.WndProc(ref m); }

相似回答