WinForm界面设计优化过程

Posted betty-it

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WinForm界面设计优化过程相关的知识,希望对你有一定的参考价值。

  以在做的项目为例,记录一下界面美化过程中遇到的问题,由于项目是先做出来之后,又请美工进行稍微调整设计界面,所以会又些限制

1. TabControl的问题----在添加了背景图片后,TabControl的标签不能添加背景图片,背景不可以设置。

  针对这个问题,网上有两种解决方法:参考:https://blog.csdn.net/sinat_29136193/article/details/80652443

  a) 重绘TabControl----设置DrawMode属性为OwnerDrawFixed,然后添加事件DrawItem,但是对于性能方面不知是否影响大。在重绘了标签和背景后,又对Page背景为与总背景一直进行设置,但是,下面的重写控件可以设置为透明度,直接,省去一些麻烦。

       b) 重写方法虽然可以用,在界面Designer.cs中修改this.TabControl=new TabControlEx();调用成功,但是在x64位编译后,不能直接拖控件到界面上,不知是何原因。

    但是重写方法可以启用TControl透明等各种,但是在设置了页面透明后,最后发现页面加载控件比较卡,未设置透明的页面不卡。不知具体原因

2. GroupBox边框问题----在项目中,原本使用GroupBox进行排版,现在美化界面设置背景图片后,GroupBox又很明显的边框,看起来不太好看。

  解决历程:首先找去边框方法,网上提供方法重写方法OnPaint()

private void groupBox10_Paint(object sender, PaintEventArgs e)
        {
            e.Graphics.Clear(this.BackColor);           
        }

 测试之后,发现,GroupBox直接连背景图片都变成白色的了,果断放弃;之后采用Panel替换GroupBox,设置背景图片,不存在任何边框问题。

3. 最主要的问题是在整体都布局设置好之后,运行程序发现卡的要命。网上查找资料总结参考:https://www.cnblogs.com/kest/p/4683012.html

      CreateParams重载之后,页面是等待所有控件都完全加载好之后,啪的一下全出来,其中有一个等待过程,后面经分析,是TabControl页面设置透明导致等待时间过长。最后决定不再使用TabControl,直接添加按钮跳转页面,也不至于有这么多问题。

以上是关于WinForm界面设计优化过程的主要内容,如果未能解决你的问题,请参考以下文章

C# winform程序,UI界面锁死。如何处理?

winform批量更新数据_长时间的执行会导致界面卡死

C# WinForm 如何动态添加控件和设计控件布局

多线程更新UI的常用方法

优化 C# 代码片段、ObservableCollection 和 AddRange

15种Python片段去优化你的数据科学管道