随笔分类 - C#
摘要:以往爬虫没怎么研究过,最近有个需求,要从某网站采集敏感信息,稍稍考虑了一下,决定利用C# Winform和Python一起来解决这个事件。 整个解决方案不复杂:C#编写WinForm窗体,进行数据分析和采集, Python本来不想用的,一下子没找到C#下Woff字体转Xml的方案,而网上Python
阅读全文
摘要:1、NuGet直接安装NPOI程序包; 2、 using NPOI.XSSF.UserModel; 3、导出Excel代码: private void TsbExport2ExcelClick(object sender, EventArgs e) { //获取qrkey ToolStripButt
阅读全文
摘要:首先先看一下什麼情況下需要對按鍵進行識別: KeyPress事件響應函數中,有KeyPressEventArgs, 對應於e.KeyChar; KeyDown事件響應中有KeyEventArgs 求取值時用e.KeyValue 鍵盤符號,對應的鍵值表 該類包含用於處理鍵盤輸入的常數。鍵由鍵值是由鍵代
阅读全文
摘要:如果没有特别需求,和场景1一样只变更表名,主键字段,检测字段等名称,不需要写其它代码了。 * 清单列表+单笔编辑/保存,适用于大多数基础资料管理以及简单的单据资料录入(当然,排版是要改一改的): * 目录树(也为列表+单笔记录变更模式):
阅读全文
摘要:步骤: 一、导入状态图片到项目中: 二、在窗体中声明一个图片数组,并在窗体的OnLoad事件中加入图片资源: /// <summary> /// 存储状态图片序列,避免同一状态对图片重复读取引发闪烁。 /// </summary> private Image[] StatusImgs; privat
阅读全文
摘要:最基础的窗体基类其实是通过应用场景反推的结构。 以下是场景一: 单表应用,普通的数据,比如单位/颜色/特殊字典等使用者少的,无需过多控制的可以使用一个数据表格来管理。 和Excel表格差不多,批量修改,统一保存。 这种设计时只需要变更Datagridview的数据列,并在代码中指定数据来源即可。看下
阅读全文
摘要:对于软件来说,启用自动更新是非常必要的。 根据软件的应用场景,我们可以设计不同的更新模型。 目前,IMES框架运行在.Net framework 4.0下面,使用的Win系统版本在Win7,域内管控,平时业务调整也不是很频繁。 所以,我的更新很粗放,就是删除旧文件,拷贝新文件: 1、更新文件放置在文
阅读全文
摘要:作为一个ERP数据处理框架,大部分的开发场景都差不多。 理想中,对于通用数据处理,我的步骤如下: 1、为窗体指定数据来源(数据表/查询等); 2、拖入编辑控件,指定绑定字段; 3、结束。 为此,我设计了几个基类窗体,给它们分成几个场景(如无数据/单表数据/主从表/多表关联等),在不同的业务模型下,我
阅读全文
摘要:为什么要用Https就不说了。 第一步:创建自签名的证书。在Windows下开启PowerShell,将以下文字粘贴进去: 把汉字部分修改成你想要的,然后运行一下,就可以在C:\tmp下面找到你的证书了,一般把它放在网站根目录下即可。 二、站点配置(ASP.NET Core 2.1) * publi
阅读全文
摘要:数量/金额的逐页累加,不是当页小计。 核心步骤: 1.在Group1大组中加入小组Group2,2.Group2的组尾加入一个计算框 : =RunningValue(Fields!BaseAmount.Value,Sum,"Group1")即可
阅读全文
摘要:在应用中,有时我们需要对访问的客户端进行有效性验证,只有提供有效凭证(AccessToken)的终端应用能访问我们的受控站点(如WebAPI站点),此时我们可以通过验证属性的方法来解决。 一、public class Startup的配置: //启用跨域访问(不同端口也是跨域) services.A
阅读全文
摘要:为了广泛支持客户端,系统框架运行在.Net Framework 4.0之上,Report viewer的版本也限制在11.0.3366.16。 使用NUGET安装Microsoft.ReportViewer 11.0.3366.16版本. 使用过程中,有以下几个常见的需求: 一、最后一页不足N行用空
阅读全文
摘要:作为ERP等数据应用程序,数据库的处理是重中之重。 在框架中,我封装了一个数据库的基类,在每个模组启动或窗体启动过程中,实例化一个基类即可调用CRUD操作(create 添加read读取 update 修改delete删除),当然,还包括基础的SQL事务处理。 这个过程中,还考虑到对插件的管控,利用
阅读全文
摘要:初学时,有了想法却完全不知道该从何下指,此序列将抛砖引玉,与大家共同学习进步。 一个程序的初始,必然是启动。 我的要求: 1、应用程序保持单例; 2、从配置文件加载一些基础数据进行初始化; 3、显示软件的LOGO页面; 4、判断应用程序是否有更新; 4、进入用户登录界面; 5、用户成功登录后显示主界
阅读全文
摘要:个别时候,我们需要一种多语种切换方案。 我的方案是这样的: 1、使用文本文本存储多语言元素,应用程序启动时加载到内存表中; 2、应用程序启动时从配置文件加载语种定义; 3、所有窗体继承自一个Base基类窗体,窗体加载时根据全局语种变量到内存表中加载多语言元素并赋值给有Text等文本属性的对象。 4、
阅读全文
摘要:在设计应用程序过程中,有时候加载对象需时较长,我们可以显示一个Loading等待页面,对用户来说就比较友好了。 这个还是涉及到多线程,下面是步骤。 一、创建好Loading窗体: 一个Panel用于显示转圈动画(仿Win10的Loading),一个Loading文本标签。动画的代码来自网络。 pub
阅读全文
摘要:一直对商业控件不感冒, 结合日常工作, 我写了几个常用控件. 一、下拉框控件(仿Access下拉框:F4下拉,自动输入,支持单/多列显示),可在Datagridview中使用。 1、常规: 2、Datagridview: 二、带按钮的文本框(可在Datagridview中使用): 1、常规: 2、D
阅读全文
摘要:一、前提条件,App必须具有NFC权限。 二、项目中加入监控类NFCCatchActivity.cs [Activity(Label = "NFCCatch",Theme = "@android:style/Theme.NoDisplay")] [IntentFilter(new[] { "andr
阅读全文
摘要:Programmer普弱哥们都喜欢玩自己的框架,我也不例外。 理想中,这个框架要易于理解、易于扩展、易于维护;最重要的,易于CODING。 系统是1主体框架+N模组的多个EXE/DLL组成的,在主体框架打开的时候,编译完模块EXE可以马上响应需求,不用退系统,不用重登录。 大概的目标:来一个新功能需
阅读全文
摘要:网上分享有很多种自制DGV控件,都有不小的缺陷。 没办法,按需求自己定制了一个。 一、过滤方面类似于Excel的筛选功能。支持右键菜单筛选,同时也支持在文本框输入文字按焦点列进行筛选; 二、统计行我采用的是双Datagridview方案。在构建控件时加入一个Dock为Bottom的子Datagrid
阅读全文

浙公网安备 33010602011771号