
C#
Tiger_shl
人生唯一的安全感,来自充分体验人生的不安全感
展开
-
【NetCore】08-日志框架
NetCore 日志框架原创 2023-08-13 08:33:54 · 500 阅读 · 0 评论 -
通过窗口句柄获取控件信息
通过句柄获取控件信息原创 2022-08-25 08:30:28 · 3001 阅读 · 1 评论 -
使用特性/泛型导入Excel(NPOI,Aspose)
使用特性/泛型导入Excel(NPOI,Aspose)原创 2022-08-08 15:18:48 · 597 阅读 · 0 评论 -
winform设置输入框只能扫描枪输入,不可手动输入,不可粘贴
为了尽可能保证录入内容的规范性,有时要求只能扫描枪录入不能手动输入。刚开始的思路是使用串口扫描枪,那这个问题可以得到很好的解决,但是因为考虑成本问题,这种方式实施成本较高。不作为优先考虑的房方式,之后在网上找到了新方法,参考的是这篇博客:使用jQuery监听扫码枪输入并禁止手动输入的实现方法逻辑就是通过判断按钮按下和松开这一过程的时间长短,来判断是手动输入还是扫描枪录入,代码如下注意:一般键盘输入的操作素的可以区分开,这里如果操作速度够快,其实还是可以输入进去的,可以做个测试 //定义时间变量原创 2020-12-12 14:29:24 · 4167 阅读 · 2 评论 -
利用委托进行主从窗体之间通信
1.从窗体向主窗体发送消息1.在主窗体中创建委托2.主窗体中声明委托的方法3.从窗体调用代码如下:/// <summary>/// 主窗体/// </summary> public partial class Form1 : Form { public Form1() { In...原创 2019-09-19 13:49:40 · 306 阅读 · 0 评论 -
键盘热键监听
public partial class Form1 : Form { public Form1() { InitializeComponent(); } private const int WM_HOTKEY = 0x312; //窗口消息-热键 priv...转载 2019-04-24 20:29:43 · 618 阅读 · 0 评论 -
C# WinForm控件之Dock顺序调整
后来在使用过程中发现,先创建的控件优先级要高于后创建的控件,优先级高的,在进行置顶或者置底等操作时,就会优先排序,所以在排序时候可以根据这个进行快速处理,很方便,亲测有效!...原创 2019-04-24 19:50:04 · 917 阅读 · 0 评论 -
WinForm禁止窗体调整
在窗体的Designer中的InitializeComponent()方法中添加以下代码:this.MaximizeBox = false;//禁止最大化this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;//禁止调整窗体大小 参考链接:https://www.cnblogs.com/chu...转载 2018-11-12 16:40:41 · 770 阅读 · 0 评论 -
WinForm事件中调用其他按钮的事件
如在BtnClick1按钮事件中调用BtnClick2的事件,调用方法为:在BtnClick1中写如下代码: this.BtnClick2.PerformClick();//调用按钮事件原文:https://bbs.youkuaiyun.com/topics/350107636...转载 2018-11-02 16:04:26 · 3162 阅读 · 0 评论 -
WinForm串口操作
生产中经常会使用到串口来处理数据,在此做一下记录:1.创建界面在WinForm中创建界面还是相对比较简单的。串口相关的界面主要包含以下几点串口选择框波特率选择框开启、关闭按钮大致如下:注意红色的图片表示的是串口开启的状态,为了便于区分当前串口状态。红色表示关闭,绿色表示开启2.窗口开启/关闭/// <summary>/// 定义的串口/// </summary>SerialPort ComDevice = new SerialPort();原创 2020-09-10 14:15:45 · 1611 阅读 · 0 评论 -
截当前屏幕/保存图片/添加水印/文件复制
截取当前屏幕内容int SH = Screen.PrimaryScreen.Bounds.Height;//获取当前屏幕高度int SW = Screen.PrimaryScreen.Bounds.Width;//获取当前屏幕宽度Bitmap bit = new Bitmap(SW, SH);Graphics g = Graphics.FromImage(bit);Point point = new Point(0, 0);g.CopyFromScreen(point, new Point.原创 2020-09-10 11:24:44 · 417 阅读 · 0 评论 -
C#创建快捷方式
//需要引入IWshRuntimeLibrary,搜索Windows Script Host Object Model /// <summary> /// 创建快捷方式 /// </summary> /// <param name="directory">快捷方式所处的文件夹</param...原创 2020-03-30 14:39:51 · 720 阅读 · 0 评论 -
C#自定义控件添加值改变事件
之前写了个自定义控件,但是自定义控件写好过后,控件原本的事件都不可见了,不方便实际操作,只能琢磨一下写个可以调用的事件,最后琢磨结果如下:定义委托 定义事件 事件绑定代码如下:namespace LD.MES.IM.UI.UControl{ public partial class LookUpTypeUC : UserControl { publ...转载 2020-03-11 16:23:45 · 2622 阅读 · 0 评论 -
分页查询的自定义控件编写及使用
先上效果图 具体操作如下:1.自定义控件的编写在项目中右键,添加---用户控件,然后选择Windows Forms,选择用户控件,设置控件名称(注意:名称不能使用UserControl,会和继承的父类重名),如下图所示; 2.根据需要,在自定义控件上添加控件,如下 3.为自定义控件Page添加按钮事件,代码如下 public partial clas...转载 2018-11-06 10:53:54 · 460 阅读 · 2 评论 -
C#中按Esc键退出Form
1.在Load中设置keypreview设定为true2.在KeyPress事件中定义关闭事件//Load事件private void Form1_Load(object sender, EventArgs e){ this.KeyPreview = true;}//KeyPress事件private void Form1_KeyPress(object sende...转载 2018-10-17 17:41:01 · 3052 阅读 · 0 评论 -
C#获取当前时间毫秒值
在.Net下DateTime.Ticks获得的是个long型的时间整数,具体表示是至0001 年 1 月 1 日午夜 12:00:00 以来所经过时间以100纳秒的数字。转换为秒为Ticks/10000000,转换为毫秒Ticks/10000。如果要获取从1970年1月1日至当前时间所经过的毫秒数//获取当前Tickslong currentTicks=DateTime.Now.Tic...转载 2018-09-14 13:28:16 · 22488 阅读 · 0 评论 -
开窗并获取新界面中选中的数据并返回
新开界面代码://页面加载时加载数据源 private void FrmSelectName_Load(object sender, EventArgs e) { //获取一部分数据 List<Employee> list = hRInfoClientBusiness.getSomeEmployeeI...原创 2018-08-24 19:13:46 · 377 阅读 · 0 评论 -
Dev中的GridControl中根据条件显示背景色
但是GridControl会默认焦点在第一行,当第一行被选中时,编辑的过滤条件不能显示,所以做了如下调整1、失去默认的首行焦点2、设置过滤行不可被选中效果如下:如果要设置整行的背景色,只要...原创 2018-05-30 21:26:57 · 2209 阅读 · 0 评论 -
Dev中去除GridControl无效0,保留小数位
1.打开Designer,2.选择Main中的Columns,选择需要设置去除无效0的行,3.选择右侧的Columns properties,找到其中的DisplayFormat,选择FormatType为Numeric,设置FormatString为{0:0.##}这表示保留两位小数并去除无效的0,如果小数点后全是无效0,则不保留两位小数如果只想保留小数位数可以设置成选择FormatType为N...转载 2018-05-30 21:13:37 · 4274 阅读 · 1 评论 -
设置SVN全局忽略样式
在全局忽略样式中填写如下内容:(这个是提交时忽略bin obj debug等格式)bin obj debug temppe *.suo *.pdsync *.projdata *.vbproj.user *.csproj.user *.vbproj.webinfo *.csproj.webinfo *.scc *.vspscc *.vssscc _ReSharper.* *.pdb *.vshos...原创 2018-06-11 14:46:18 · 2504 阅读 · 0 评论 -
遍历Excel获取每个单元格数据
public static void GetExcelData(string filePath, string fileName, int operType, string sheet = "sheet1") { try { string md5 = string.Empty; ...原创 2019-03-29 15:31:50 · 6581 阅读 · 0 评论 -
根据当前日期获取该月的第一天和最后一天
DateTime dateTime = timeMonth.Value.Date;//当前选择的日期 string stertTime = new DateTime(dateTime.Year, dateTime.Month, 1).ToString();//当月第一天 string endTime = new DateTim...转载 2018-05-25 08:48:51 · 3054 阅读 · 0 评论 -
使用反射创建窗体对象时,对象为NULL
Form frm = (Form)asb.CreateInstance(vm.MenueCode);//利用反射,根据数据库中的字段值创建窗体对象使用上述代码创建窗体时出现问题,创建的frm为null,但是其他的窗体又是可以的.被创建的窗体时从其他项目中引用而来的,经人指点,发现是命名空间不正确导致的,引用过来的窗体还是原来的项目的命名空间,修改成现在项目的命名空间,重新编译就OK了....原创 2018-11-14 21:04:26 · 653 阅读 · 0 评论 -
C#读取XML文件
一xml结构如下:<?xml version="1.0" encoding="utf-8" ?><configuration> <connectionStrings> <file>C:\Users\Desktop\机台数据\eventdata.txt</file> <line>SA5R22EB-...原创 2018-11-26 11:02:46 · 295 阅读 · 0 评论 -
C#中DataGridView鼠标左键双击事件的添加
在DataGridView中查看数据,有时需要进行单个数据的详细分析,那么用到鼠标双击事件就很方便了。首先,要在DataGridView所在的Designer.cs中添加鼠标双击事件;找到DataGridView在Designer.cs中的位置,添加以下代码this.dataGridView1.CellMouseDoubleClick += new System.Windows.Forms原创 2017-10-17 14:39:58 · 12350 阅读 · 0 评论 -
C#调用FastReport模板进行打印
其实整个流程代码比较简单,就是在二维码这块遇到点问题,直接调用模板不能打印二维码,出来的是默认的Code39码制的一维码,后来在这位仁兄的博客下找到了解决方法https://www.cnblogs.com/healer007/p/9017909.html记录如下:private void PrintHZPackOne(HZTagModelInfo hZTagModelInfo, H...原创 2019-05-13 21:08:45 · 7862 阅读 · 1 评论 -
利用反射赋值引用类型对象(对象深拷贝)
/// <summary> /// 通过反射创建对象 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="stance"></param> /// <re...转载 2019-04-11 13:43:11 · 416 阅读 · 0 评论 -
TextEdit控件只接受数字及小数点的输入
定义控件的KeyPress事件,事件中输入如下代码private void textEdit1_KeyPress(object sender, KeyPressEventArgs e) { //数字0~9所对应的keychar为48~57,小数点是46,Backspace是8 e.Handled = true; ...转载 2019-04-01 08:28:34 · 822 阅读 · 0 评论 -
C#监听文件夹内容
public class DataFileSystemWatcher { /// <summary> /// 程序启动 /// </summary> public void StartProcess() { try { ...原创 2019-03-29 15:18:22 · 1755 阅读 · 0 评论 -
以非独占的方式打开文件
调用FileStream中的方法,设置属性FileShare为ReadWrite即可同享文件夹FileStream fs = new FileStream(path_one, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);StreamReader sw = new StreamReader(fs);...转载 2018-12-10 14:36:55 · 2059 阅读 · 0 评论 -
文件夹排序问题
对于文件和文件夹有多种排序方式,常用的就是按创建或修改时间、按文件名排序。在 C# 中,按时间和文件名排序都十分简单,用数组提供的排序方法 Array.Sort() 一行代码就可以搞定,当然也可以用常用的排序方法,如快速排序、冒泡排序等。 文件排序的方法也适用于文件夹,只是传递的变量不同。为了便于使用,将分别列出C#文件排序和文件夹排序四种常用方法,分别为:按名称顺序与倒序排序、按时间顺序与...转载 2018-11-28 09:00:38 · 799 阅读 · 1 评论 -
C#按照日期输出程序日志
namespace LogData{ public class Log { private static LogManager logManager; static Log() { logManager = new LogManager(); } public static...转载 2018-11-27 14:47:19 · 819 阅读 · 1 评论 -
EF隐藏Appconfig中的数据库连接的字符串
转载 2018-05-07 15:50:27 · 973 阅读 · 0 评论 -
GridControl显示自增行
设置完成后即可看到新增的行,填写好一行,然后点击行下空白,就会增加新的一行原创 2018-04-26 16:05:57 · 1453 阅读 · 0 评论 -
DevExpress中导航栏添加及导航栏事件添加
winform项目需要使用DevExpress,一边琢磨一边学习。将导航栏的使用记录如下,如有不对,还请批评指教!1、在界面中添加XtraNavBar.navBarControl组件,添加group,效果如图所示;2、鼠标右键添加Item,添加选项,如图所示;3、在Item中绑定事件。代码如下//页面加载调用初始化方法 private void Form1_Load(object sender,...原创 2018-03-09 09:30:13 · 5030 阅读 · 3 评论 -
winform中显示实时时间和星期
做winform项目发现需要添加一个时间显示功能,现记录如下:1、首先新建一个Timer,命名为timer,并在属性中修改Interval为1000;2、在需要显示时间的地方添加一个label(假设设置名称为:timerLabel);3、进入.cs的窗体代码中,在Timer对应的方法中添加如下代码timerLabel.Text = DateTime.Now.AddSeconds(...原创 2018-03-08 21:00:40 · 3908 阅读 · 3 评论 -
EF返回表中的某个字段以及返回关联查询的字段
在使用EF6.2时遇到一个需求,就是需要返回一张表中的某一个或者某一个字段;⑴、如果是在同一张表中的字段,那么获取这个比较简单:如下var list = from u in content.Employees join c in content.Positions on u.PositionId equals c.PositionId where u.E...原创 2018-03-15 10:38:20 · 4057 阅读 · 1 评论 -
System.Data.Entity.Core.MetadataException:“Unable to load the specified metadata resource.”
项目使用EF遇到这个问题,原因是因为我生成了EF过后,觉得生成的位置不好,重新移动了生成文件的位置,导致了这个问题。在App.config中添加修改<connectionStrings>标签中的内容:将其中的<add name="LDOAEntities" connectionString="metadata=res://*/OADBModel.csdl|res://*/OADB...原创 2018-02-28 11:55:16 · 4801 阅读 · 0 评论 -
System.InvalidOperationException:“在应用程序配置文件中找不到名为“LDOAEntities”的连接字符串。”
编写窗口程序,使用EF时遇到了一个问题,解决方法记录如下:也是在网上看到别人的方法,试了过后返现问题得到了解决:原因:程序集的问题,程序集简单点说就是最后编译成可执行文件的时候,所有代码最终都会放在同一个地方,而这个地方通常就是程序中作为启动项的代码中,而连接字符串又需要通过App.config进行配置(原来项目中的App.config不会复制过来),所以就需要在启动项重新配置。在测试项中添加En...原创 2018-02-28 11:39:56 · 6187 阅读 · 0 评论 -
C#报错,Metadata file 'xxx.dll' could not be found
真的不容易,一个项目调试许久,终于从180多个错误调试到了3个错误,最后三个错误提示“Metadata file 'xxx.dll' could not be found”,无从入手的感觉,最后在网上看到别人的方法。试了一下,很有用(至少对于我这个项目来说是有用的^_^),步骤如下:1、右键单击解决方案,然后单击“属性”。2、单击左侧的配置。3、确保选中了它找不到的项目的“生成”下的复选框。...原创 2018-01-11 18:27:27 · 14108 阅读 · 2 评论