- 博客(64)
- 资源 (3)
- 收藏
- 关注
原创 WPF使用钩子拦截键盘消息
这里介绍一种拦截键盘事件监听方式,在WPF中窗体初始化完成后会进入一个SourceInitialized事件,可通过重写该事件给窗体添加一个接收Windows消息钩子。Hook(钩子)就是对Windows系统的一些消息或是API函数进行拦截和监控的处理平台 。 /// <summary> /// 窗体初始化完成后,给窗体添加钩子监听窗口消息 /// </summary> /// <param name="e
2021-12-06 16:40:39
1866
原创 Asp.net Core WebApi使用Swagger中间件
在开发Asp.net Core WebApi应用程序时,为了方便调试在创建.Net5项目的时候如果勾选了OpenApi将会自动添加好Swagger,如果没有则需要手动进行配置。1、首先需要添加Nuget包,选择Swashbuckle.AspNetCoreSwashbuckle.AspNetCore包含了Swashbuckle.AspNetCore.Swagger、Swashbuckle.AspNetCore.SwaggerGen与Swashbuckle.AspNetCore.SwaggerUI.
2021-08-28 01:37:56
475
原创 Sqlserver字符串操作以及数据类型转换
1、数据类型转换函数有:CONVERT与CAST语法:-- CAST Syntax: CAST ( expression AS data_type [ ( length ) ] ) -- CONVERT Syntax: CONVERT ( data_type [ ( length ) ] , expression [ , style ] )select CAST('2021-02-02' as datetime)--结果:{2021-02-02 00:00:00.000}se...
2021-08-24 13:47:10
6825
原创 Sqlserver交叉连接cross join(笛卡尔积)
1、交叉连接cross join,查询出来的结果是两张表中数据的乘积例如:表A有2条数据,表B有3条数据,通过交叉连接进行查询,会将A表中的每一条数据都去和B表中的所有数据做一次关联--创建两张表,分别插入数据create table TestA( id int identity(1,1) primary key not null, UserName nvarchar(50) not null,)gocreate table TestB( id int identity(1,1)
2021-08-24 12:52:13
2513
原创 group by having分组筛选
create table TestClassInfo( id int identity(1,1) primary key not null, UserNo int not null, UserName nvarchar(50) not null, ClassType nvarchar(10) not null, Score float default(0) not null)goinsert into TestClassInfo (UserNo,UserName,ClassType,Sco.
2021-08-24 12:19:06
175
原创 Sqlserver查询数据第N条到第M条
--查询一个范围的数据有以下几种方式1、select Top 10 * from tableA --查询前10条2、select Top 20 Percent * from tableA --查询前20%条--如果要查询后多少或者后百分之多少,只需要加上order by条件--Where条件+比较符获取范围,例如:select * from tableA where id > 10-- >、>=、<、<= and or等等进行组合条件.
2021-08-24 03:11:50
3791
原创 Sqlserver模糊查询几种方式记录
我有一张表TestInsertBase,里边所有的数据如下:Id Name1 张三asdfg2 李四edghws3 王五sdfgs4 赵六qwer5 123ffgadcc6 456bsnns7 456kluty1、like ‘%模糊匹配内容%’,该种模糊匹配为包含匹配 select * from TestInsertBase where name like '%qw%'查询出表TestInsertBase中Name包含qw
2021-08-24 02:17:41
8351
原创 EFCore程序包管理器控制台DBFirst创建实体对象
使用EntityFrameworkCore ORM的DBFirst模式进行数据层开发,采用程序包管理器控制台,通过执行命令快速构建关系对象实体一、创建实体层类库,添加EF Core相关Nuget包 1、Microsoft.EntityFrameworkCore 2、Microsoft.EntityFrameworkCore.SqlServer 3、Microsoft.EntityFrameworkCore.Tools或者使用命令...
2021-08-22 11:27:37
399
原创 在Asp.Net Core简单应用Autofac
目的:记录Autofac在Asp.Net Core项目中替代原生IOC简单用法Nuget包 1、Autofac 2、Autofac.Extension.DependencyInjection一、Program中新增Autofac注册工厂添加引用:using Autofac.Extensions.DependencyInjection; public static IHostBuilder CreateHostBuilder(...
2021-08-19 18:58:51
807
原创 Razor扩展
一、扩展IHtmlHelper 由于在Razor页面使用@Html.能够使用的自带方法有限,因此可以写一些扩展方法,例如扩展一个方法返回Html标签。扩展方法是静态方法,且第一个参数是自身,用this修饰。定义静态扩展方法,扩展IHtmlHelper类型,返回IHtmlContent类型 public static class HtmlHelperExtensions { public static IHtmlCo...
2021-08-18 22:49:34
243
原创 C#EnumHelper
简单枚举帮助类:方便开发中获取枚举键值转换 /// <summary> /// 枚举帮助类 /// </summary> public class EnumHelper { /// <summary> /// 根据传入的int返回对应枚举属性名称 /// </summary> /// <typeparam name="T">枚举对象</
2021-08-02 17:18:09
437
原创 WPF 单例(instance)子窗体Hide后再次Show会闪现上一次的画面问题处理
单例窗口的关闭不能去杀死释放,所以一般都是重写OnClosing,在里边调用Hide()方法。而当Hide后,虽然已经在之前清空了界面绑定等内容。但是界面并没有去重绘,使用this.InvalidateVisual()强制重新刷新也没有效果。其实这个是需要等事件执行完后再去调用Hide(),就能够触发界面刷新。所以使用一个异步,延迟100毫秒等走完OnClosing方法再执行Hide()方法就能够刷新一次界面,在这之前设置界面绑定为空,下一次再调起单例弹窗的时候就不会有上一次的界面遗留,出现一个旧数
2021-07-22 14:34:55
1023
原创 C#枚举帮助类
public class EnumHelper { /// <summary> /// 根据传入的int返回对应枚举属性名称 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="num">进制</param> /// <retur...
2021-07-01 15:04:24
344
原创 WPF MvvM实现DataGrid单元格回车进入编辑,再次回车退出编辑
<DataGrid x:Name="RecognizeGrid" ItemsSource="{Binding LstRecognizeTable}" SelectionUnit="Cell" KeyUp="RecognizeGrid_KeyUp" attachHelper:DataGridAttach.IsFocused="{Binding RecognizeGridIsFocused,Mode=TwoWay,Upd.
2021-06-07 15:40:09
2772
原创 popup转换器处理HorizontalOffset弹出位置动态跟随在点击按钮右下偏左显示
效果图:背景:popup是跟随一个button进行联动,button里边样式中包含文字和图标,当文字不是固定的时候,按钮的大小是会改变的,导致popup打开的位置不能够每次都在相对button固定方向展示。解决方法:添加转换器处理popup的HorizontalOffset。设置HorizontalOffset="{Binding ElementName=btnTargetText,Path=ActualWidth,Converter={StaticResource PopupOff..
2021-04-22 10:31:45
340
原创 WPF关闭弹出窗体、popup
业务场景:在处理全局钩子捕获到Windows特定消息需要关闭指定的弹出窗体。一个自定义窗体:或者一些窗体上的Popup控件不管是不是这个业务场景,都可以在不相干的后台中去获取控件并关闭。 /// <summary> /// Windows钩子 /// </summary> private IntPtr WndProc(IntPtr hwnd, int msg, IntPtr wParam, Int
2021-04-14 15:50:27
1443
原创 c#深度复制
深度复制帮助类封装using System.Collections.Generic;using System.IO;using System.Runtime.Serialization.Formatters.Binary;using System.Xml.Serialization; /// <summary> /// 深度复制,序列化拷贝。 /// </summary> public class DeepCopyExtensi..
2021-04-14 10:26:44
805
原创 Win32使用钩子捕获Windows进程消息
添加引用:using System.Runtime.InteropServices; public class Win32API { [DefaultDllImportSearchPaths(DllImportSearchPath.SafeDirectories)] [DllImport("user32.dll")] public static extern bool ChangeWindowMessageFilterEx(IntPtr .
2021-04-12 15:18:31
864
原创 TypeScript&VsCode安装
环境准备1、官网安装nodejs2、命令安装typescriptnodejs&yarn安装教程:https://zhuanlan.zhihu.com/p/82347262使用npm安装typescript:npm install -g typescript使用npm 安装cnpm:npm install -g cnpm --registry=https://registry.npm.taobao.org使用cnpm安装typescript:cnpm install -g ty
2021-04-08 00:00:26
255
原创 WPF popup移动、弹开、关闭、焦点等处理
using System;using System.Collections.Generic;using System.Linq;using System.Runtime.InteropServices;using System.Text;using System.Threading.Tasks;using System.Windows;using System.Windows.Controls.Primitives;using System.Windows.Input;using Sys.
2021-04-07 17:07:15
2762
1
原创 WPF ItemControl、ListBox等触摸列表同步滚动条(触摸滚动)
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows;using System.Windows.Controls;using System.Windows.Input;namespace commom{ /// <summary> /// Sc.
2021-04-07 17:01:42
1107
1
原创 c# 实现3/5/7游戏
规则:15个任意物品(可以是火柴牙签poker)以下按牙签为例将15根牙签分成三行每行自上而下(其实方向不限)分别是3、5、7根安排两个玩家,每人可以在一轮内,在任意行拿任意根牙签,但不能跨行拿最后一根牙签的人即为输家namespace ThreeFiveSevenGameV2{ /// <summary> /// 随机选择行,随机取火柴根数(两人同时操作同一行) /// </summary> public p.
2021-03-17 21:18:00
1390
原创 C#16进制字符串到数组之间的相互转换
/// <summary> /// 十六进制转字节数组 /// </summary> /// <param name="s"></param> /// <returns></returns> public static byte[] HexStringToByteArray(string s) { s ...
2021-03-04 11:24:06
872
1
原创 MySQL实现SQL server中的Row_Number() over(partition by ... Order By ...) 分组排序
背景:产品升级需要兼容MySQL环境运行,需要将原有的SQL server语句转成MySQL写法。SQL server: 分组排序语法:Row_Number() over(partition by 分组字段A,分组字段B,...Order By 排序字段...)然而MySQL中没有该语法,可以使用参数的方式进行实现。查询模板:1、partition by后跟一个参数SQL server:SELECT Row_Number() over(partition by A.字段2...
2020-09-16 14:22:54
2209
原创 SQL server在Select语句中Join一个表值函数进行关联,转成Mysql去实现方式。
记一次平台升级兼容SQL server和MySQL开发解决方案。某程序功能执行这样一个sql获取数据,原SQL server语句:SELECT *FROM BidFile AS AINNER JOIN dbo.fun_获取指定流程的合格单位(3, '9') AS B ON A.BidFileId = B.BidFileId该sql语句为简单截取关键一段,在这局sql中select一张表,该表关联join了一个表值函数,具体是什么不重要,只需要知道表值函数的作用就是返回一个列表集合用于外层.
2020-09-10 11:03:33
1153
原创 获取中文汉字英文首字母
在开发中有时候需要使用某些列进行排序,而中文汉字只是按照第一个汉字进行排序,这个时候就需要每个汉字的首字母组成的字符串进行排序。源码: /// <summary> /// 中文字符串帮助类 /// </summary> public class ChineseStringHelper { /// <summary> /// 获取中文字符串汉字首字母拼音 /// </sum
2020-05-12 19:19:05
687
原创 WPF 单例(instance)子窗体关闭与再次显示,窗体刷新不及时问题
1、单例窗体不能够close,close后下次就再也不能打开了。只能通过重写OnClosing方法进行隐藏处理 protected override void OnClosing(CancelEventArgs e) { this.Hide(); e.Cancel = true; }2、窗体隐藏后,再次sho...
2020-04-30 00:52:30
2487
1
原创 如何创建Mvvmlight WPF程序
创建步骤创建Mvvm结构的开发环境很简单,首先在View层的App.xaml文件中引用ViewModel层,设置全局资源。其次,给主窗体设置数据源并设置绑定接着,在ViewModel层新建定位器和主窗体绑定的类定位器中相关代码如果是使用NuGet导入MvvmLight,就会自动创建好了这个ViewModelLocator类,在类的构造函数中会带有这个Servi...
2020-04-23 21:56:46
564
原创 MvvmLight项目基本开发环境,客户端框架搭建准备思路
今天抽了点时间整理了一下准备项目的环境搭建。这里我选择了MvvmLight设计模式,基于最基本的三层架构思路进行客户端程序的框架设计主要三层:Model、View、ViewModel的设计思路这里分成三个文件夹主要是让代码看起来更舒服 我没有使用NuGet直接去导入Mvvmlight包而是通过手动去添加dll引用,再建立项目之间的引用实现每层的关联。 通过View层去新建项目,...
2020-04-21 23:29:19
390
原创 WPF启程
开始接触wpf到现在已经刚好一年了,今天找回了不知何时申请的Git账号,准备开始人生第一次独立开发软件。git:https://github.com/QQ981526028/BookCase 我在git上创建了一个仓储,我将会在这开始记录接下来每一天对这款软件的思考,开发,优化,以及总结。在过好几个年头也要奔三的人了,不能够每天把进步和提升挂在嘴上,脑海里也记不下来各种零零散散的知识点...
2020-04-20 21:53:28
126
原创 XtraTabControl对Page页操作的一些公共方法
/// <summary> /// 关闭tabcontrol的所有页 /// </summary> /// <param name="tabControl"></param> public static void CloseAllTabPage(this XtraTa...
2019-02-22 10:24:51
1692
原创 TreeList节点展开与收缩
介于树节点的展开与收缩是经常多处使用的,这里就写个两个调用方法。 /// <summary> /// 展开指定节点以及其父节点 /// </summary> /// <param name="tree">树</param> /// <param name="a...
2019-02-22 10:18:36
5380
原创 GridControl右键弹出PopupMenu菜单
方法一:private void gridControl_MouseUp(object sender, MouseEventArgs e) { try { GridHitInfo info = gvEmployee.CalcHitInfo(e.Location); ...
2019-02-22 10:02:27
3023
原创 定制PivotGridControl特性类
前言在EF架构中使用PivotGridControl控件要绑定数据源时,每一次都要去后台查询出需要的数据集,然后甄选出我们需要的用以pivotgridcontrol所绑定的数据源的字段,接着定义一个个的PivotGridField,最终添加到一个List<PivotGridField>集合中作为数据源进行绑定。其次,对于PivotGridControl也要去创建设置一些显示列也...
2019-02-20 16:01:46
616
1
原创 整理一些ChartControl控件属性
ChartControl.CrosshairOptions.ArgumentLineColor 获取或设置交叉点参数行的颜色。 ChartControl.CrosshairOptions.ArgumentLineStyle 获取十字准线游标的参数行样式设置。 ChartControl.CrosshairOptions.Commo...
2019-02-16 14:30:26
2959
原创 整理PivotGridControl一些属性
PivotGridControl.OptionsChartDataSource 提供对在图表控件中控制PivotGrid控件数据显示的选项的访问。 PivotGridControl.OptionsChartDataSource.AutoTransposeChart 获取或设置如果序列数超过参数值的数量,是否应转换绑定图表控件。 PivotGridControl.OptionsC...
2019-02-16 14:28:36
3381
原创 项目间的json.NET程序包冲突引发set_IgnoreSerializableAttribute(Boolean)找不到的异常。
在一次程序设计中遇到了一个这样的问题: 使用webAPI作为启动项目执行程序时,都能正常通过。但是使用winform项目作为启动程序启动时,每到调用接口的时候就会出异常。通过跟踪测试发现在掉API接口时报的异常,异常提示里面有关键词Json Serialization,又有找不到方法等字样。初步先假设是json版本问题,头脑里估计预想是现在用的版本缺少某个方法。我也不知道,乱想的。接着就对项...
2019-01-11 09:58:01
349
原创 TreeList定位焦点节点
在Winform界面中,有的用到了TreeList控件。并且有一些功能需要用户在一个文本框中输入某些关键字,点击一个按钮能够自动去一个一个的匹配,并定位到拥有关键字的树节点。类似于: 为达到该功能,我写了一个公共方法方便系统中多处使用。/// <summary>/// 通过字符串设置焦点节点/// </summary>/// <param na...
2018-12-26 16:51:17
3148
2
原创 RibbonForm 设置快捷键动态匹配TabControl显示的当前窗口的按钮,触发按钮点击事件
问题由来: 在程序设计中,使用Dev这套控件的工具条菜单控件所添加的菜单按钮设置快捷键。当打开界面按下快捷键时,会触发该按钮的点击事件,这是一种很方便的功能。 这种设置针对程序只有一个单一的窗体是很不错,但是一般大的项目都是一个主界面,添加一个TabControl,其它的功能窗体都是作为一个TabPage去show出来。面对这种分格的软件去通过每个界面再设置按钮快捷键就行不通了。...
2018-11-28 10:42:15
929
TinyPinyin.Core.dll
2020-05-11
BusyIndicator.cs
2020-04-30
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人