
C#
小小小陆
好记性不如烂笔头,记录一些东西,防止遗忘
展开
-
GalleryControl内CheckContextButton复选框多选
GalleryControl内CheckContextButton复选框多选。原创 2023-02-21 14:25:38 · 251 阅读 · 3 评论 -
List对象根据属性去重
List对象根据属性去重。原创 2022-09-14 10:52:35 · 312 阅读 · 0 评论 -
DevExpress WinForm 自定义TreeList过滤方式
由于DevExpress TreeList自带的过滤方式有缺陷,当过滤到父级节点时候,子节点只要不满足条件就不显示,有时候我们并不想这样,虽然dev最近的版本解决了当过滤到子节点的时候显示其父级节点的BUG(将treeList1.OptionsFilter.FilterMode = DevExpress.XtraTreeList.FilterMode.Extended;),但是过滤到父级显示其子级问题却没有解决,所以无奈的只能自定义过滤规则。该规则包括过滤到父级显示子级,和过滤到子级显示父级。...转载 2022-08-29 09:04:19 · 662 阅读 · 0 评论 -
Visual Studio调试XtraReport脚本
Visual Studio调试XtraReport脚本原创 2022-07-01 10:00:31 · 368 阅读 · 0 评论 -
获取当前方法的名称空间、类名和方法名称
C# 获取当前方法/父方法的信息原创 2022-06-10 16:12:21 · 403 阅读 · 0 评论 -
C#委托(Delegate)简介
委托从字面上理解就是一种代理,类似于房屋中介,由租房人委托中介为其租赁房屋。在 C#语言中,委托则委托某个方法来实现具体的功能。委托是一种引用类型,虽然在定义委托时与方法有些相似,但不能将其称为方法。委托在使用时遵循三步走的原则,即定义声明委托、实例化委托以及调用委托。从数据结构来讲,委托是和类一样是一种用户自定义类型。委托是方法的抽象,它存储的就是一系列具有相同签名和返回回类型的方法的地址。调用委托的时候,委托包含的所有方法将被执行。委托是 C# 语言中的一个特色,通常将委托分为命名方法委托原创 2022-02-16 10:01:00 · 41867 阅读 · 6 评论 -
EmguCV 根据倾斜角度旋转图片
public static void test(string img) { Mat src = CvInvoke.Imread(img); Mat mask = new Mat(); CvInvoke.Canny(src, mask, 20, 40); VectorOfVectorOfPoint contours = new VectorOfVect...原创 2021-12-02 11:38:44 · 737 阅读 · 0 评论 -
使用OpenCV + GDAL 拼接图片
前言:之前写过一章关于Gdal批量拼接,剪切图片的博客,但是有一些局限性,如果相机拍摄的时机不一定,物体移动的时候,拍出来的图片起始高度不同,且没办法测量偏移量,就不适用了。所以我想到一个办法。就是在要拍摄的物体上方加一条标识线,如下图所示:假设物体在标识线下方,我们只需要按照标识线位置拼接就好。比如拍出来的图片如下面两张图所示: 假设图一和图二是完美情况拍出来的图片,高度分毫不差,这样我们不用考虑偏移,正常拼接就好,但...原创 2021-11-17 17:23:07 · 2508 阅读 · 0 评论 -
TextBox限制只允许数字输入,包括小数点
先写一个通用方法,避免多个TetxBox有同样的需求需要重复代码bool IsNumber(char kc, TextBox textBox) { if ((kc >= 48 && kc <= 57) || kc == 8) return true; else if(kc == 46) //小数点 ...原创 2021-11-15 16:08:03 · 3844 阅读 · 1 评论 -
.net webAPI跨域问题解决方案
最近在创建自己的个人博客网站,中途遇到的一些问题,记录一下。用的.net 5.0 webAPI 用到接口会有跨域问题。在网上百度的都是在StartUp类的ConfigureServices方法中添加如下代码:services.AddCors(options =>options.AddPolicy("cors",p => p.AllowAnyOrigin().AllowAnyHeader().AllowAnyMethod().AllowCredentials()));但是Cors配置原创 2021-09-17 10:43:20 · 1223 阅读 · 0 评论 -
C# 如何使用GDAL进行拼接,裁剪图片
这段时间项目进行过程中,需要用到图片拼接和裁剪的功能,因为拼接出来的图片超大,BitMap有大小限制,就使用GDAL进行图像的拼接和裁剪,下面是一些用法。1,需要引用GDAL 的dll包,这个可以在管理GuGet程序包里下载引用图像拼接 /// <summary> /// /// </summary> /// <param name="srcDs">小图数据</param> ///原创 2021-06-16 15:28:07 · 1792 阅读 · 2 评论 -
XDocument 读取Xml
前言:前两天做项目时,需要读取Xml里的wafer参数。上网查了一些方法加上自己的实践。值是取出来了,记录一下。xml信息:代码: if (File.Exists("MachineConfig.xml")) { XDocument doc = XDocument.Load("MachineConfig.xml");//加载xml文件 IEnumerable<XElement> waferSizes =原创 2021-03-17 17:03:26 · 563 阅读 · 0 评论 -
C#实现图片放大,缩小,拖拽
目录效果:代码:放大缩小原理:效果:先看效果:代码:using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;namespace原创 2021-02-20 11:54:47 · 3159 阅读 · 0 评论 -
使用Graphics绘制图形
目标是做一个扫描wafer的界面,界面初始化时会根据wafer的直径和die的边长绘制下图中的样子;单击启动,程序会开始扫描变绿。并且窗体拉大缩小时,绘制的图形可以跟着放大缩小,(正常wafer有12寸或者8寸的,不缩小屏幕也放不下),刚开始时是计算图形所在容器的size变化倍数,然后乘上wafer的直径和die的边长,重新绘制图形。但是这样算出来的倍数会有小数,计算的时候有误差,肯定是不对的。最后想到绘制图形和放大缩小用同一个Graphics,这样在放大缩小图形时直接操作这个Graphics就可以了原创 2021-02-04 10:17:55 · 2194 阅读 · 2 评论 -
使用NPOI导出Excel使用日记
private ICellStyle SetCellSty(IWorkbook workbook) { ICellStyle cellstyle = workbook.CreateCellStyle(); //下边框 cellstyle.BorderBottom = BorderStyle.Thin; //上边框 cellstyle.BorderTop = BorderSt原创 2021-01-08 17:44:07 · 440 阅读 · 0 评论 -
DevExpress控件导出Excel
实现思路是把传入的DataSet 遍历成多个DataTable ,创建多个GridControl 控件存放每个DataTable ,再把每个GridControl 放入PrintableComponentLink 里,最后放入我们的link 里,用link.ExportToXls()方法导出excel表格。 private void ExportToExcel(DataSet dataSet) { SaveFileDialog saveFileDialog = n原创 2020-11-17 10:57:53 · 1938 阅读 · 0 评论 -
c#读取CSV经过筛选并写入新的CSV
public void ReaderAndWriterToCsv(string oldFilePath ,string newFilePath){ using (var reader = new StreamReader(oldFilePath)) using (var csv = new CsvReader(reader, CultureInfo.InvariantCulture)) { //Class1是存放列名的mode原创 2020-11-09 09:21:49 · 855 阅读 · 1 评论 -
c#读取Excel表数据
1,使用OLEDB可以对excel文件进行读取private DataSet ReadExcelToDataSet(string path) { //连接字符串 /* 备注: 添加 IMEX=1 表示将所有列当做字符串读取,实际应该不是这样, 系统默认会查看前8行如果有字符串,则该列会识别为字符串列。 如果前8行都是数字,则还是会识别为数字列,日期也一样;原创 2020-11-06 13:23:33 · 14590 阅读 · 2 评论 -
C# DataTable筛选条件,简单计算
//创建表及添加数据 DataTable dataTable = new DataTable(); dataTable.Columns.Add("姓名"); dataTable.Columns.Add("性别"); dataTable.Columns.Add("籍贯"); dataTable.Columns.Add("年龄"); dataTable.Columns.Add("学历"); dataTable.Rows.Add("张三", "男", "北京", "18", "大专"原创 2020-10-28 09:55:20 · 1847 阅读 · 0 评论