一个差劲的软件设计

项目概况:

之前自己设计并开发了一个用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切换。

相关推荐
橙色小博8 分钟前
利用Python 进行自动化操作: Pyautogui 库
开发语言·python·自动化·pyautogui·办公
qq_5432485222 分钟前
redis的哨兵模式和Redis cluster
java·开发语言
IUings28 分钟前
【鸿蒙】HarmonyOS NEXT之如何正常加载地图组件
开发语言·华为·harmonyos·harmonyos next·地图服务·map kit
秦少游在淮海1 小时前
C++ - STL #什么是STL #STL的版本 #闭源开源 #STL的六大组件
开发语言·c++
夜月yeyue1 小时前
高性能MCU的MPU与Cache优化详解
linux·开发语言·stm32·单片机·嵌入式硬件
@蓝莓果粒茶1 小时前
LeetCode第245题_最短单词距离III
c语言·c++·笔记·学习·算法·leetcode·c#
Wyn_1 小时前
【QT】自定义QWidget标题栏,可拖拽(拖拽时窗体变为normal大小),可最小/大化、关闭(图文详情)
开发语言·qt
“抚琴”的人1 小时前
【机械视觉】Halcon—【六、交集并集差集和仿射变换】
开发语言·halcon
VBA63371 小时前
VBA数据库解决方案二十:Select表达式From区域Where条件Order by
开发语言
Haoea!1 小时前
Flink03-学习-套接字分词流自动写入工具
开发语言·学习