一个差劲的软件设计

项目概况:

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

相关推荐
Blossom.1186 分钟前
使用Python和TensorFlow实现图像分类的人工智能应用
开发语言·人工智能·python·深度学习·安全·机器学习·tensorflow
bicijinlian12 分钟前
C#黑魔法:鸭子类型(Duck Typing)
c#·鸭子类型·duck typing
CodeWithMe31 分钟前
【C/C++】C++中noexcept的妙用与性能提升
c语言·开发语言·c++
非著名架构师33 分钟前
C++跨平台开发实践:深入解析与常见问题处理指南
开发语言·c++
越来越无动于衷37 分钟前
JAVA多态——向上转型
java·开发语言
鱼嘻1 小时前
线程邮箱框架与示例
linux·c语言·开发语言·算法·php
cooldream20091 小时前
有状态服务、无状态服务与Session机制详解
java·开发语言·系统架构师
Q_Q19632884751 小时前
python小区物业管理系统-小区物业报修系统
开发语言·spring boot·python·django·flask·node.js·php
一只蒟蒻ovo1 小时前
操作系统导论——第27章 插叙:线程API
java·开发语言
斯普润布特1 小时前
Java-很深我只知其一构造(Builder)
java·开发语言