随笔分类 -  .NET

摘要:当程序运行,窗口已经加载后,如果修改屏幕分辨率,会影响窗口的正常显示。 举个案例: 悬浮窗口,显示在屏幕右下角。当分辨率、文本显示比例变更后,窗口位置可能会超出屏幕范围。 所以当屏幕变更时,我们需要知道准确的时机,然后针对的处理。 通过窗口消息监听屏幕显示变更 对窗口添加钩子 1 var windo 阅读全文
posted @ 2021-06-08 01:16 唐宋元明清2188 阅读(1687) 评论(10) 推荐(4)
摘要:有一些UI自动化测试框架,能够实现自动化测试。 本文介绍Peer(微软的TAF技术),也可以实现自动化测试,或是对其他进程进行UI操作。下面是案例~ 在界面上添加俩个按钮: 并处理相应的点击事件: 1 private void Test1Button_OnClick(object sender, R 阅读全文
posted @ 2021-05-19 09:02 唐宋元明清2188 阅读(1540) 评论(1) 推荐(1)
摘要:e.KeyboardDevice.Modifiers 同时按下了Ctrl + H键(H要最后按,因为判断了此次事件的e.Key)修饰键只能按下Ctrl,如果还同时按下了其他修饰键,则不会进入 1 private void TextBox_KeyDown(object sender, KeyEvent 阅读全文
posted @ 2020-08-24 18:13 唐宋元明清2188 阅读(801) 评论(0) 推荐(0)
摘要:右键菜单,tootip等弹出时,弹出的位置经常在左侧,使用体验不好。 弹出方向有左对齐和右对齐 SystemParameters.MenuDropAlignment 当右对齐时,值为false 可以在控制面板中查看当前的设置: 如何在软件中强制向右弹出显示? 可以设置SystemParameters 阅读全文
posted @ 2020-08-24 17:37 唐宋元明清2188 阅读(545) 评论(1) 推荐(3)
摘要:网络连接判断,使用ping测试获取: 1 private static async Task<bool> IsPingSuccess() 2 { 3 try 4 { 5 using (Ping myPing = new Ping()) 6 { 7 var result = await myPing. 阅读全文
posted @ 2020-05-27 14:40 唐宋元明清2188 阅读(408) 评论(0) 推荐(1)
摘要:蓝牙设置相关界面,以下是通过C#方式打开的几个方式,记录一下 蓝牙设置界面 1.控制面板命令bthprops.cpl 可以用控制面板 control+bthprops.cpl,也可以直接bthprops.cpl。更多的命令见:所有运行命令指令大全、CMD & CPL:快捷系统命令和控制面板命令 bt 阅读全文
posted @ 2020-05-26 16:47 唐宋元明清2188 阅读(1192) 评论(0) 推荐(1)
摘要:在给软件添加快捷键时,经常遇到其它软件或者系统已设置的快捷键,导致功能冲突。 HotKey函数 下面介绍一个user32.dll的RegisterHotKey以及UnregisterHotKey热键处理的函数 注册热键 RegisterHotKey function BOOL RegisterHot 阅读全文
posted @ 2020-03-24 11:56 唐宋元明清2188 阅读(537) 评论(2) 推荐(2)
摘要:获取已安装的所有字体列表 System.Drawing.FontFamily 1 StringBuilder str = new StringBuilder(2000); 2 InstalledFontCollection fonts = new InstalledFontCollection(); 阅读全文
posted @ 2020-03-21 11:18 唐宋元明清2188 阅读(3347) 评论(1) 推荐(2)
摘要:使用Aspose组件导出 Aspose有Aspose.Slides.dll,可以无需安装office,进行读写PPT文件。 Aspose可能通过Aspose.Slides.NET安装 简单的导出图片demo,如下: 1 internal class PptToImagesConverter 2 { 阅读全文
posted @ 2020-02-25 16:21 唐宋元明清2188 阅读(551) 评论(1) 推荐(1)
摘要:读取txt文件时,提示异常: 文件“..\Log\all_info.txt”正由另一进程使用,因此该进程无法访问此文件 原因: 日志文件通过lognet生成的日志文件(C#使用log4net记录日志),自动任务一直在进行,文件流没有关闭。 所以获取文件内容时,会提示进程被占用。 尝试方案: 通过Sy 阅读全文
posted @ 2019-12-10 18:30 唐宋元明清2188 阅读(1573) 评论(2) 推荐(2)
摘要:Sql模糊查询,Like默认是不区分大小写的 使用Like时,怎么支持大小写呢? upper、lower,只能模糊所有的内容,不能区分内容中的大小写。 sqlite数据库对text字段默认是大小写敏感的,但是唯独在模糊查询时不起作用。 解决方法是:查询前先执行PRAGMA case_sensitiv 阅读全文
posted @ 2019-12-09 11:38 唐宋元明清2188 阅读(2207) 评论(0) 推荐(0)
摘要:在我们业务操作时,难免会有多次操作,我们期望什么结果呢? 绝大部分情况,应该是只需要最后一次操作的结果,其它操作应该无效。 自定义等待的任务类 1. 可等待的任务类 AwaitableTask: 1 /// <summary> 2 /// 可等待的任务 3 /// </summary> 4 publ 阅读全文
posted @ 2019-12-05 12:40 唐宋元明清2188 阅读(1871) 评论(8) 推荐(13)
摘要:在MainWindow中,创建一个背景属性BrushTest,并将其绑定至界面上UserControl的BackgroundTest属性 UserControl,同样添加一个BackgroundTest属性,并将其绑定至界面。 运行后,控制台输出绑定异常,背景设置并没有生效。 System.Wind 阅读全文
posted @ 2019-12-03 15:56 唐宋元明清2188 阅读(1224) 评论(2) 推荐(4)
摘要:修改屏幕DPI,会触发控件的Unloaded/Loaded 现象/重现案例 这里简单介绍下,修改屏幕DPI,触发Unloaded/Loaded的神奇案例 1. 我们新建一个窗口,添加一个UserControl1,然后在UserControl1中添加UserControl2 1 <Window x:C 阅读全文
posted @ 2019-11-27 21:59 唐宋元明清2188 阅读(1612) 评论(7) 推荐(1)
摘要:当我们的系统时间不正常,比如设置一个日期-1999年9月9日,会引发证书问题。 系统时间不正常-IE有概率能访问 触发NavigateError事件,异常代码INET_E_INVALID_CERTIFICATE -- 这是一个必要不充分条件,系统时间不正常时IE有相关证书异常,更新时间能解决此类异常 阅读全文
posted @ 2019-11-21 11:25 唐宋元明清2188 阅读(1242) 评论(0) 推荐(1)
摘要:如下图,如何判断几何多边形A被多边形B,切割为多段几何? 几何A被几何B切割 1. 获取几何A与几何B的交集C var intersectGeometry = new CombinedGeometry(GeometryCombineMode.Intersect, geometry1, geometr 阅读全文
posted @ 2019-11-19 21:27 唐宋元明清2188 阅读(861) 评论(0) 推荐(3)
摘要:从一段字符串中,提取中文、英文、数字 中文字符30Margin中文字符40HorizontalAlignment 正则表达式: PS:使用正则匹配字符内容,不能使用开始、结束字符( ^文本开始; $文本结束)。 Regex使用: 注: Regex.Match只会返回第一个匹配项 如果需要获取正则对应 阅读全文
posted @ 2019-11-04 17:43 唐宋元明清2188 阅读(2112) 评论(0) 推荐(1)
摘要:LinqDB数据库查询数据,还是很方便的。 1. 添加Entity数据实体类 方便之后映射操作 2. 添加DB操作通用类 3. 添加指定数据库的映射连接类 4. 添加数据库查询辅助类 这里是将数据库放在程序启动目录下,通过绝对路径引用。 阅读全文
posted @ 2019-10-26 09:51 唐宋元明清2188 阅读(640) 评论(0) 推荐(1)
摘要:使用LinqDB查询Sqlite数据库数据,不管是大数据还是少量的数据,感觉特别耗时,尤其是首次查询 一个含有2.7万条数据的数据表 首次查询: 查询2.7万条数据,耗时1s 查询指定的1条数据,也要耗时750ms 二次查询: 查询2.7万条数据,耗时475ms 查询指定的1条数据,耗时73ms 我 阅读全文
posted @ 2019-10-25 20:33 唐宋元明清2188 阅读(515) 评论(3) 推荐(1)
摘要:当使用Sql语句查询数据库,返回DataSet数据集。 DataSet转化为数据列表,可以通过映射方式直接返回Entity数据列表 新建一个特性类,用于数据库列表列名称映射 LinqToDB提供了一个ColumnAttribute,但是通过反射不方便获取ColumnAttribute获取Custom 阅读全文
posted @ 2019-10-25 18:29 唐宋元明清2188 阅读(669) 评论(0) 推荐(0)