一个差劲的软件设计

项目概况:

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

相关推荐
lucky_syq10 小时前
Scala与Spark算子:大数据处理的黄金搭档
开发语言·spark·scala
封奚泽优10 小时前
使用Labelme进行图像标注
开发语言·python·labelme
wjs202410 小时前
C 标准库 - <ctype.h>
开发语言
wjs202410 小时前
AngularJS与SQL的集成使用指南
开发语言
七号练习生.c11 小时前
JavaScript基础入门
开发语言·javascript·ecmascript
oioihoii11 小时前
智能体颠覆教育行业:现状、应用与未来展望调研报告
开发语言
常常不爱学习11 小时前
Vue3 + TypeScript学习
开发语言·css·学习·typescript·html
No0d1es11 小时前
2025年 CSP-J1 入门级初赛 C++真题
开发语言·c++·青少年编程·csp·信息学奥赛·初赛
Halo_tjn11 小时前
基于 Object 类及包装类的专项实验
java·开发语言·计算机
拾忆,想起11 小时前
超时重传 vs 快速重传:TCP双保险如何拯救网络丢包?
java·开发语言·网络·数据库·网络协议·tcp/ip·php