一个差劲的软件设计

项目概况:

之前自己设计并开发了一个用C#开发的上位机软件,整个软件只有一个Form,一个TabControl,3个TabControlPanel,总共100多个lable、textbox、ListBox等控件都放在这3个TabControlPanel里。

问题:

  1. Designer.cs文件特别大,接近1万行。

  2. 增加控件比较难。本来在visual studio里添加一个控件特别简单,拖拽就行。但是,在这个项目里,想添加一个新的按钮,一打开Form文件,就自动修改了Form、.Designer和.resx文件,改了一些位置信息,导致控件错位,所以如果想添加新的控件,都不敢直接在Form上拖拽控件,而是在Designer.cs文件里,直接写新控件的代码,这样导致效率特别低,调个位置,得来回运行好几次才能调好。

  3. 修改和查找控件也比较难。在100多个控件里,想找个一个控件也并不容易。

  4. 有同样的功能写了2遍,维护也困难。

解决方案:

  1. 将页面都拆成多个的用户控件。

  2. 使用成熟的框架。如prism。通过Region切换。

相关推荐
Villiam_AY26 分钟前
Redis 缓存机制详解:原理、问题与最佳实践
开发语言·redis·后端
UQWRJ1 小时前
菜鸟教程R语言一二章阅读笔记
开发语言·笔记·r语言
岁忧2 小时前
macOS配置 GO语言环境
开发语言·macos·golang
朝朝又沐沐3 小时前
算法竞赛阶段二-数据结构(36)数据结构双向链表模拟实现
开发语言·数据结构·c++·算法·链表
魔尔助理顾问4 小时前
系统整理Python的循环语句和常用方法
开发语言·后端·python
Ares-Wang4 小时前
JavaScript》》JS》 Var、Let、Const 大总结
开发语言·前端·javascript
遇见尚硅谷5 小时前
C语言:*p++与p++有何区别
c语言·开发语言·笔记·学习·算法
SkyrimCitadelValinor5 小时前
c#中让图片显示清晰
开发语言·c#
爱吃香蕉的阿豪5 小时前
SignalR 全解析:核心原理、适用场景与 Vue + .NET Core 实战
vue.js·microsoft·c#·.netcore·signalr
艾莉丝努力练剑5 小时前
【数据结构与算法】数据结构初阶:详解排序(二)——交换排序中的快速排序
c语言·开发语言·数据结构·学习·算法·链表·排序算法