随笔分类 -  Winform

摘要:以往爬虫没怎么研究过,最近有个需求,要从某网站采集敏感信息,稍稍考虑了一下,决定利用C# Winform和Python一起来解决这个事件。 整个解决方案不复杂:C#编写WinForm窗体,进行数据分析和采集, Python本来不想用的,一下子没找到C#下Woff字体转Xml的方案,而网上Python 阅读全文
posted @ 2019-03-07 21:35 ROTA 阅读(1487) 评论(0) 推荐(3)
摘要:1、NuGet直接安装NPOI程序包; 2、 using NPOI.XSSF.UserModel; 3、导出Excel代码: private void TsbExport2ExcelClick(object sender, EventArgs e) { //获取qrkey ToolStripButt 阅读全文
posted @ 2019-02-18 22:11 ROTA 阅读(1502) 评论(0) 推荐(0)
摘要:首先先看一下什麼情況下需要對按鍵進行識別: KeyPress事件響應函數中,有KeyPressEventArgs, 對應於e.KeyChar; KeyDown事件響應中有KeyEventArgs 求取值時用e.KeyValue 鍵盤符號,對應的鍵值表 該類包含用於處理鍵盤輸入的常數。鍵由鍵值是由鍵代 阅读全文
posted @ 2019-01-16 13:28 ROTA 阅读(1911) 评论(0) 推荐(1)
摘要:如果没有特别需求,和场景1一样只变更表名,主键字段,检测字段等名称,不需要写其它代码了。 * 清单列表+单笔编辑/保存,适用于大多数基础资料管理以及简单的单据资料录入(当然,排版是要改一改的): * 目录树(也为列表+单笔记录变更模式): 阅读全文
posted @ 2018-11-08 20:33 ROTA 阅读(701) 评论(0) 推荐(0)
摘要:步骤: 一、导入状态图片到项目中: 二、在窗体中声明一个图片数组,并在窗体的OnLoad事件中加入图片资源: /// <summary> /// 存储状态图片序列,避免同一状态对图片重复读取引发闪烁。 /// </summary> private Image[] StatusImgs; privat 阅读全文
posted @ 2018-11-01 09:31 ROTA 阅读(3795) 评论(1) 推荐(2)
摘要:最基础的窗体基类其实是通过应用场景反推的结构。 以下是场景一: 单表应用,普通的数据,比如单位/颜色/特殊字典等使用者少的,无需过多控制的可以使用一个数据表格来管理。 和Excel表格差不多,批量修改,统一保存。 这种设计时只需要变更Datagridview的数据列,并在代码中指定数据来源即可。看下 阅读全文
posted @ 2018-10-30 19:36 ROTA 阅读(761) 评论(0) 推荐(1)
摘要:对于软件来说,启用自动更新是非常必要的。 根据软件的应用场景,我们可以设计不同的更新模型。 目前,IMES框架运行在.Net framework 4.0下面,使用的Win系统版本在Win7,域内管控,平时业务调整也不是很频繁。 所以,我的更新很粗放,就是删除旧文件,拷贝新文件: 1、更新文件放置在文 阅读全文
posted @ 2018-10-19 19:07 ROTA 阅读(807) 评论(0) 推荐(0)
摘要:作为一个ERP数据处理框架,大部分的开发场景都差不多。 理想中,对于通用数据处理,我的步骤如下: 1、为窗体指定数据来源(数据表/查询等); 2、拖入编辑控件,指定绑定字段; 3、结束。 为此,我设计了几个基类窗体,给它们分成几个场景(如无数据/单表数据/主从表/多表关联等),在不同的业务模型下,我 阅读全文
posted @ 2018-10-18 20:25 ROTA 阅读(860) 评论(0) 推荐(0)
摘要:为了广泛支持客户端,系统框架运行在.Net Framework 4.0之上,Report viewer的版本也限制在11.0.3366.16。 使用NUGET安装Microsoft.ReportViewer 11.0.3366.16版本. 使用过程中,有以下几个常见的需求: 关于主从报表,这个在低版 阅读全文
posted @ 2018-10-17 10:55 ROTA 阅读(509) 评论(0) 推荐(0)
摘要:为了广泛支持客户端,系统框架运行在.Net Framework 4.0之上,Report viewer的版本也限制在11.0.3366.16。 使用NUGET安装Microsoft.ReportViewer 11.0.3366.16版本. 使用过程中,有以下几个常见的需求: 一、最后一页不足N行用空 阅读全文
posted @ 2018-10-17 10:43 ROTA 阅读(820) 评论(0) 推荐(0)
摘要:作为ERP等数据应用程序,数据库的处理是重中之重。 在框架中,我封装了一个数据库的基类,在每个模组启动或窗体启动过程中,实例化一个基类即可调用CRUD操作(create 添加read读取 update 修改delete删除),当然,还包括基础的SQL事务处理。 这个过程中,还考虑到对插件的管控,利用 阅读全文
posted @ 2018-10-16 20:10 ROTA 阅读(1885) 评论(4) 推荐(4)
摘要:初学时,有了想法却完全不知道该从何下指,此序列将抛砖引玉,与大家共同学习进步。 一个程序的初始,必然是启动。 我的要求: 1、应用程序保持单例; 2、从配置文件加载一些基础数据进行初始化; 3、显示软件的LOGO页面; 4、判断应用程序是否有更新; 4、进入用户登录界面; 5、用户成功登录后显示主界 阅读全文
posted @ 2018-10-15 22:30 ROTA 阅读(1213) 评论(0) 推荐(2)
摘要:个别时候,我们需要一种多语种切换方案。 我的方案是这样的: 1、使用文本文本存储多语言元素,应用程序启动时加载到内存表中; 2、应用程序启动时从配置文件加载语种定义; 3、所有窗体继承自一个Base基类窗体,窗体加载时根据全局语种变量到内存表中加载多语言元素并赋值给有Text等文本属性的对象。 4、 阅读全文
posted @ 2018-10-15 21:48 ROTA 阅读(925) 评论(1) 推荐(1)
摘要:在设计应用程序过程中,有时候加载对象需时较长,我们可以显示一个Loading等待页面,对用户来说就比较友好了。 这个还是涉及到多线程,下面是步骤。 一、创建好Loading窗体: 一个Panel用于显示转圈动画(仿Win10的Loading),一个Loading文本标签。动画的代码来自网络。 pub 阅读全文
posted @ 2018-10-15 21:34 ROTA 阅读(10077) 评论(7) 推荐(2)
摘要:一直对商业控件不感冒, 结合日常工作, 我写了几个常用控件. 一、下拉框控件(仿Access下拉框:F4下拉,自动输入,支持单/多列显示),可在Datagridview中使用。 1、常规: 2、Datagridview: 二、带按钮的文本框(可在Datagridview中使用): 1、常规: 2、D 阅读全文
posted @ 2018-10-12 16:56 ROTA 阅读(1469) 评论(0) 推荐(2)
摘要:Programmer普弱哥们都喜欢玩自己的框架,我也不例外。 理想中,这个框架要易于理解、易于扩展、易于维护;最重要的,易于CODING。 系统是1主体框架+N模组的多个EXE/DLL组成的,在主体框架打开的时候,编译完模块EXE可以马上响应需求,不用退系统,不用重登录。 大概的目标:来一个新功能需 阅读全文
posted @ 2018-10-10 21:11 ROTA 阅读(2002) 评论(3) 推荐(2)
摘要:网上分享有很多种自制DGV控件,都有不小的缺陷。 没办法,按需求自己定制了一个。 一、过滤方面类似于Excel的筛选功能。支持右键菜单筛选,同时也支持在文本框输入文字按焦点列进行筛选; 二、统计行我采用的是双Datagridview方案。在构建控件时加入一个Dock为Bottom的子Datagrid 阅读全文
posted @ 2018-10-10 09:10 ROTA 阅读(6525) 评论(3) 推荐(2)
摘要:很多时候,我们需要在窗体中执行一些耗时比较久的任务。比如:循环处理某些文件,发送某些消息等。。。 单纯的依靠状态栏,用户体验不佳,按下功能按钮后得不到有效的提醒,小白用户绝对会电话给你说“我点了以后就没反应了...”。 因此,对于响应时间可能超过5秒以上的事件,有必要增加一个显眼的提示框(在屏幕中央 阅读全文
posted @ 2018-09-30 17:03 ROTA 阅读(4792) 评论(1) 推荐(0)