一个差劲的软件设计

项目概况:

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

相关推荐
weixin_520649872 小时前
WinForm数据展示组件ListView
c#
九转成圣3 小时前
Java 性能优化实战:如何将海量扁平数据高效转化为类目字典树?
java·开发语言·json
SmartRadio3 小时前
ESP32-S3 双模式切换实现:兼顾手机_路由器连接与WiFi长距离通信
开发语言·网络·智能手机·esp32·长距离wifi
laowangpython3 小时前
Rust 入门:GitHub 热门内存安全编程语言
开发语言·其他·rust·github
我叫汪枫3 小时前
在后台管理系统中,如何递归和选择保留的思路来过滤菜单
开发语言·javascript·node.js·ecmascript
_.Switch3 小时前
东方财富股票数据JS逆向:secids字段和AES加密实战
开发语言·前端·javascript·网络·爬虫·python·ecmascript
软件技术NINI3 小时前
webkit简介及工作流程
开发语言·前端·javascript·udp·ecmascript·webkit·yarn
Brendan_0013 小时前
JavaScript的Stomp.over
开发语言·javascript·ecmascript
念2343 小时前
f5 shape分析
开发语言·javascript·ecmascript
苍穹之跃4 小时前
某量JS逆向
开发语言·javascript·ecmascript