一个WinForm程序界面生成的不断进化
ccwgpt 2024-10-23 09:29 32 浏览 0 评论
原始阶段
最初用Winform形式的界面都是拖拉形式,比如这种:
但做着做着发现,其实复杂界面就那么几个,编程中用的比较多的还是用户输入界面,尤其是这种交互式单输入界面,比如这种:
于是开始了下一个
觉醒阶段
针对上面那种单输入界面,我针对性的提取了一个它们的共同点
然后编码的时候,指定好对应的数据:
WeiLan.Win.Lib.UserInputForm form = new WeiLan.Win.Lib.UserInputForm("交付对话框", "用户名", "", "接收者拥有该源码的所有权利,包含但不限于:修改代码、推广、销售、分发、交付他人、授权给他人使用等\n");
可以达到目的。
但做着做着我发现,还有更复杂一些的数据录入界面,比如跟配置、数据库相关的:
这种不仅有单行输入框,还有下拉框、多行输入框等多种输入形式,上面的那种单输入方式就无法胜任了,于是再次进化:
完善阶段
于是针对这些界面形式,我重新设计框架:
编码时指定更加复杂却又简单的指令:
UserInputsForm form = new UserInputsForm(
"规则对话框",
new UserInputsEntity() { LabelName = "名称:", ControlName = "Caption", Type = UserInputsControlType.TextBox, DefaultValue = rule.Caption },
new UserInputsEntity() { LabelName = "编码:", ControlName = "Number", Type = UserInputsControlType.TextBox, DefaultValue = rule.Number },
new UserInputsEntity() { LabelName = "所属分类:", ControlName = "Category", Type = UserInputsControlType.ComboBox, Dictionarys = dictionaries, DefaultValue = rule.CategoryId.ToString() },
new UserInputsEntity() { LabelName = "运行平台:", ControlName = "Platform", Type = UserInputsControlType.ComboBox, Dictionarys = dics_platform, DefaultValue = rule.Platform },
new UserInputsEntity() { LabelName = "界面形式:", ControlName = "UIType", Type = UserInputsControlType.ComboBox, Dictionarys = dics_ui, DefaultValue = rule.UIType },
new UserInputsEntity() { LabelName = "最低运行版本:", ControlName = "MinAppVersion", Type = UserInputsControlType.TextBox, DefaultValue = rule.MinAppVersion },
new UserInputsEntity() { LabelName = "排序:", ControlName = "ShowOrder", Type = UserInputsControlType.TextBox, DefaultValue = rule.ShowOrder },
new UserInputsEntity() { LabelName = "规则简介:", ControlName = "Summary", Type = UserInputsControlType.TextArea, Height = 80, DefaultValue = rule.Summary }
);
恩,如此这般就完成了稍微复杂一点各种界面的适应。
然后做着做着,我的欲望也在膨胀,既然界面生成可以如此便利,我为什么不能囊括更多的控件呢?比如文件选择框、目录选择框、按钮等等。
事实上,很多控件的要求都一样的。
于是乎,我再次改进代码,成为了现在的模样:
成熟阶段
新的生成方式不局限于窗体了,控件也是可以的,这样我就可以应用在任何窗体了,无论是独立弹窗的,还是内嵌到某个位置的。界面上就这一个自定义控件
代码上增加文件选取这种形式
考虑到按钮是直接与事件处理相关的,再通过界面转一次反而增加麻烦,所以按钮界面生成和事件绑定,还是使用比较原始的方式。最终界面效果如下:
通用的界面生成都进化成这种形式,这样的做的好处:
1、节约大量界面开发和调试时间,80%的用户界面交互都可以胜任;
2、界面、风格一致。这些界面都是由同一批代码动态生成的;
看有人评论说06年就有winform低代码框架了,那能说明啥呢?要按这个逻辑,5000年前猴子就吃食了,结果你现在改吃屎了?
我做这个对我有如下好处:
一是这个可以提高我的生产力;
二是这个基于.Net 6的;
三是虽说这个是基于WinForm,但理论上也可以扩展到WebForm,只不过UI上要做大量工作;
四是我自己写的,怎么用着舒服就怎么改,不受任何约束;
五是别人写的再NB,那也是别人的,我自己写的再垃圾,那我也有绝对的版权;
有时间就自己写点东西,比在我这喷有意义的多。
相关推荐
- PPT 139 | 粉色渐变小清新春暖花开PPT模板
-
春暖花开,这是你制作PPT的世界粉色渐变小清新春暖花开PPT模板,共22P适用场合:工作总结/个人汇报/演讲培训等喜欢的可以赞一个更多类似PPT模板,搜【小清新】也可以,在线编辑,一键下载...
- 框架完整岗位竞聘报告PPT模板
-
需要源文件de可私!氢元素为您提供PPT模板、PNG元素免费、办公模板。工作述职汇报、计划总结、培训课件、节日庆典、营销策划、商业计划、宣传企业、产品发布、个人简历、毕业答辩、岗位竞聘、护理培训,...
- PPT与视频相关的几个操作要点
-
都知道PPT中可以插入视频,而2010及以上版本插入后还可以对视频做各种处理,另外别忘了还可以直接将PPT导出成视频格式。插入视频方式往PPT中插入视频,除了【插入】|【视频】|【PC上的视频】这种方...
- 书写主题品管圈汇报PPT模板,主题框架,简约设计,品管圈必备
-
Hello大家好,我是帮帮。今天跟大家分享一张书写主题品管圈汇报PPT模板,主题框架,简约设计,品管圈必备。有个好消息!为了方便大家更快的掌握技巧,寻找捷径。请大家点击文章末尾的“了解更多”,在里面找...
- 【教学成果框架图】国家级获奖案例解析与可视化方案(实战版)
-
教学成果逻辑框架图的绘制精髓总结为“逻辑为骨,视觉为翼”。下面结合具体案例,手把手教你制作既专业又美观的成果框架图。一、设计理念:教育逻辑与视觉传达的融合教学成果框架图需体现三重逻辑:教育目标层(立德...
- 年中汇报PPT的超强框架来袭,职场人士的必备神器!
-
这套框架堪称完美,适用于各类工作汇报场景。它逻辑清晰,内容丰富,涵盖个人介绍、工作回顾、业绩成果、问题分析以及未来工作计划等常见汇报模块。PPT已包含600多页,所有元素均可自由编辑,数据图表也能轻松...
- 三个说话框架,提升逻辑思维,让你清晰表达
-
#暑期创作大赛#建立清晰的逻辑思维:三个说话框架的力量我们生活在一个充满语言交流的世界中。无论是在学校,工作场所,还是在社交场合,我们都需要有效地表达我们的观点和想法。然而,许多人都有表达上的困扰,他...
- 《石头记》人物原型故事之逻辑框架(一)
-
话说空空道人将《石头记》带往人世,又经东鲁孔梅溪醒题《风月宝鉴》,曹雪芹定名《金陵十二钗》,加之警幻仙子提醒防备新谱《红楼梦十二支曲》。蛮以为他人在闲适风月故事之于能够了然背后真实故事,怎耐一万年老怪...
- 如何搭建高效沟通与精彩演讲的逻辑结构
-
对于大多数人而言,说话有逻辑这件事难于登天。很多人在演讲、工作汇报中都会遇到诸如“我不知道你在说什么”、“你的重点是什么”、“你说话毫无逻辑”此类的评价,被认为是说话缺乏逻辑的人。那么如何成为一个说话...
- 「书讯」论证逻辑框架下说理写作模式研究
-
《论证逻辑框架下说理写作模式研究》作者:金建龙出版日期:2018年11月开本:16开出版社:经济管理出版社小编推荐提升大学生批判意识和理性说理能力是新时代背景下高等教育中通识教育和博雅教育的全新探索...
- 【一元脑花】青少年4D逻辑训练的基本框架
-
一、核心训练模块多维认知构建资源分布图谱:通过分析社会资源层级与流动规律,建立立体空间认知模型2DOC时空维度整合:将历史局势演变(纵向时间轴)与未来趋势预判(横向可能性轴)结合训练2DOC动态干预系...
- 提升写作逻辑,这5个框架你搭建好了吗?
-
每个人都有写作的愿望,也都想表达心中浩荡的情感,但多年过后,许多人依旧卡在“无话可说”“写不出结构”的怪圈里。有人慨叹:“浮云一别后,流水十年间”,梦想与现实总有一道沟壑横亘——此岸是满腹心事,彼岸...
- 学霸:2天吃透初一语文上学期核心预习知识框架图|暑假弯道超车
-
学霸:2天吃透初一语文上学期核心预习知识框架图|暑假弯道超车。具体如下:查看作者的个人主页获悉剩余的~...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- 框架图 (58)
- flask框架 (53)
- quartz框架 (51)
- abp框架 (47)
- jpa框架 (47)
- springmvc框架 (49)
- 分布式事务框架 (65)
- scrapy框架 (56)
- shiro框架 (61)
- 定时任务框架 (56)
- java日志框架 (61)
- mfc框架 (52)
- abb框架断路器 (48)
- beego框架 (52)
- java框架spring (58)
- grpc框架 (65)
- tornado框架 (48)
- 前端框架bootstrap (54)
- orm框架有哪些 (51)
- 知识框架图 (52)
- ppt框架 (55)
- 内联框架 (52)
- cad怎么画框架 (58)
- ssm框架实现登录注册 (49)
- oracle字符串长度 (48)