C#
文章平均质量分 57
光怪陆离的节日
祝生活愉快!!
展开
-
VS2015出现:PCL中std::numeric_limits::max()编译错误
解决方法:将 std::numeric_limits::max()改为 (std::numeric_limits::max)()今天在测试程序时发现,PCL包含目录下pcl-1.8\pcl\io\ply\io_operators.h中,std::numeric_limits::max()会出现编译错误,error C2589: “(”:“::”右边的非法标记。warning C4003: “max”宏的实参不足。error C2059: 语法错误:“::”原创 2024-03-20 16:41:47 · 204 阅读 · 0 评论 -
CMake入门1——CMake与VS2015的结合使用
下载安装例1 使用cmake-gui与VS生成器例3 PreLoadcmake用法本文描述在Win10-64位系统中安装CMake、cmake-gui的简单使用及其与VS2015编译器的结合使用,以及cmake命令行与nmake的结合使用。下载从CMake官网上下载最新版本的安装包,本文中下载的是 cmake-3.10.1-win64-x64.msi。若不想安装,可直接下载压缩包版本cmake-3.10.1-win64-x64.zip。安装CMake的安装非常简单。原创 2024-03-20 16:19:10 · 1274 阅读 · 0 评论 -
WPF 后台赋值iconfont,实现图标的切换
其中 “& #xe7e7;’”是Unicode编码。WPF 后台赋值iconfont。原创 2023-02-28 15:32:01 · 820 阅读 · 0 评论 -
WPF开发--自带触控键盘的TeXTBOX实现
//通过该属性,访问Keyboard的文本。设置TextBox的Style为TouchTextBox,则该TextBox实现了自带触控键盘的效果。先实现一个自定义的KeyboardControl,它继承自Window。在App.Xaml中引入TouchTextBox.Xaml资源。添加一个名为TouchTextBox的资源字典。定义一个TouchTextBox的分部类。二 KeyboardControl。原创 2023-02-14 14:41:03 · 957 阅读 · 0 评论 -
wpf--通过Popup弹出自定义输入“键盘“的实现
在很多工厂的信息化MES系统中,车间的采集数据的机器是触摸屏电脑(工厂环境所限,用外接鼠标键盘反而不方便)。由于没有外接键盘,所以用户无法像坐在办公室一样,用鼠标键盘进行录入信息。/// NumericKeyboard.xaml 的交互逻辑。/// MainWindow.xaml 的交互逻辑。wpf之Popup弹出自定义输入"键盘"原创 2023-02-11 12:14:27 · 1484 阅读 · 1 评论 -
WPF数据表DataTable添加ROW报错:This row already belongs to another table
想在DataTable2中插入DataTable1中的Row,但是提示报错:This row already belongs to another table.DataTable2.增加行(Row.ItemArray)DataTable2.增加行(Row)原创 2023-02-11 10:24:41 · 965 阅读 · 0 评论 -
C#--删除DataTable中的某一行
1,使用DataTable.Rows.Remove(DataRow),或者DataTable.Rows.RemoveAt(index);Delete()只是将相应列的状态标志为删除,还可以通过datatable.RejectChanges()回滚,使该行取消删除。3、在删除DataTable中的行的时候,每删除一行,DataTable中所有行的索引都会发生改变。Remove的使用是datatable.Rows.Remove(datatable.Rows[i]);而Remove方法则是直接删除.原创 2023-02-10 11:08:59 · 3135 阅读 · 0 评论 -
WPF--实现代码控制DataGrid的特定列排序
var temp=控件名.Items.Cast().Select(x => x as 类名).ToList();//界面字段排序后的集合。DataGridSort(“列绑定的字段名字”, ListSortDirection.Ascending);此方法适用于 WPF 的 DataGrid 控件。//按钮事件或者其它事件。3、获取排序后的结果集合。/// 模拟点击列头。/// 降序还是升序。原创 2023-02-09 16:48:32 · 1593 阅读 · 0 评论 -
wpf小技巧——datagrid 滚动条问题
查了下微软文档http://msdn.microsoft.com/zh-cn/library/ms754213。所以如果想出现滚动条 就千万别在datagrid外面套stackpanel布局 切记切记~~~~~相信很多人都会出现这类情况 在datagrid外面套stackpanel布局吧。导致datagrid认为它的父容器在垂直方向无穷大 所以就没法出现滚动条了。运行就可以看到右边的 datagrid不会出现滚动条了。/// MainWindow.xaml 的交互逻辑。很简单的布局代码如下。原创 2023-02-09 15:05:17 · 1820 阅读 · 0 评论 -
Wpf DataGrid的数据绑定
在项目开发的过程,通常会遇到一些表格数据的绑定,因为没有WPF的开发经验所以一边摸索一边开发,所幸WPF的上手难度不大,开发过程较为顺利。不过在使用DataGrid的时候还是遇到了一点阻绊遇。所以在这里讲一下这个DataGrid应该怎么用,以及要注意的事情。DataGrid是个非常实用的控件,可以用来展示及获取较为复杂的数据结构。1、在资源视图xml文件中添加DataGrid,并设置绑定,如下。在初始化代码中设置DataGrid绑定到的对象。原创 2023-02-09 13:14:04 · 1999 阅读 · 0 评论 -
WPF下给DataGrid自动增加序列号
C#下使用WPF框架编程时,有时需要给DataGrid添加序号,实现方式一般两种,一种方式是通过 LoadingRow,自动在列前边增加一列序号,该列为自动添加,没有列名字。另一种是自定义一列显示序号。下边我们看看具体的实现方式。最后设置DataGrid的 HeadersVisibility ="Column"或者 RowHeaderWidth =“0”。给DataGrid添加LoadingRow事件。给DataGrid添加LoadingRow事件。LoadingRow实现。LoadingRow实现。原创 2023-02-08 10:59:52 · 2273 阅读 · 0 评论 -
WPF--DataGrid控件使用
DataGrid的使用其实跟TreeView类似,只不过后台组织的对象结构不同,DataGrid一般不需要递归结构,它绑定的数据源,一个属性就代表一个一列,理解不了没事,我直接上代码。(如果这是一直对最后一行进行双击后,再切换到其他行,会增加一行),直接设置CanUserAddRows=“False”,让它不能创建行。一个对象,对应一行,一个属性,对应一列,跟TreeView每一级对应一个对象类似的,默认的样式有点。三个属性,对应三列,老规矩,写界面和ViewModel(代码很简单,自己写咯)原创 2023-02-08 10:58:29 · 1140 阅读 · 0 评论 -
wpf中遍历界面控件的方法
摘要://////遍历界面中的所有控件//////privatevoidSetNotEditable(UIElementCollectionuiControls){foreach(UIElementelementinuiControls){if(elementisTextBox){(elementasT原创 2023-02-01 10:50:00 · 1092 阅读 · 0 评论 -
在 WPF 中的两个窗口之间共享同一个对象
所以这是两个不同的对象.如果Settings 窗口中的对象AppSettings 发生更改,则更改不会反映在Main 窗口的AppSettings 中.>本文介绍了在 WPF 中的两个窗口之间共享同一个对象的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!现在要从不同的窗口引用此对象,您可以使用:((App)Application.Current).setting_1。我有代表我的 AppSettings 的类我有 Main 窗口和 Settings 窗口.原创 2023-01-31 14:32:31 · 807 阅读 · 0 评论 -
C#报错:未将对象设置到对象实例 Object reference not set to an instance of an object
这里要提醒大家的是,如果是从零开始获取的控件,一定要记得从最初始的路径开始获取,直接点说就是面板里最上面的控件。在Unity生命周期中,把实例化写在start()方法里面,而我又写的是用一个类去调用另一个类,而两个类中的变量都需要实例化,那么我在用A类去调用B类时,B类中的变量又可能还没有实例化,导致B类中的变量返回值为空。当Eval(“字段”)为Null时,一个Null.ToString(),必然也会出现上面的错误,那什么情况出现?当然啦,出现这种异常的场景,那可是万万千,数也数不完,但本质是一样的。原创 2023-01-30 17:25:06 · 15681 阅读 · 0 评论 -
WPF报错:The Solution of “The calling thread cannot access this object beacuse a different thread owns
传说中android的动画效果为什么没有iphone的动画效果好,就是因为iphone的绘制渲染的线程的优先级非常高,只要有关于动画的操作,比如说滑动一个菜单,那么这个动画会被安排到最优先级运行,从而保证动画的流畅。大概WPF中也是这样的理念。UI线程创建了那些在XAML或者在c#中定义的控件,并且拥有他们,并且出于对UI的保护,其他线程是不能访问到UI线程里的东西的,如果我们新建一个线程,然后在这个线程里面修改一个在xaml中或者在主线程中定义的Button.Content,那么就会得到这个异常。原创 2023-01-30 16:26:59 · 762 阅读 · 0 评论 -
WPF:Color.FromArgb(Byte, Byte, Byte, Byte)使用方法
该方法 FromRgb 对 alpha 通道使用默认值 255。颜色的 alpha 通道确定颜色的透明度。alpha 值为 255 表示颜色完全不透明,值为 0 表示颜色完全透明。Color.FromArgb(Byte, Byte, Byte, Byte) 方法。使用指定的 sRGB Alpha 通道和颜色通道值创建一个新的 Color 结构。新颜色的 Alpha 通道 A。具有指定值的 Color 结构。新颜色的红色通道 R。新颜色的绿色通道 G。新颜色的蓝色通道 B。原创 2023-01-30 15:23:57 · 836 阅读 · 0 评论 -
WPF---入门教程Label使用
Label元素的Width和Height属性表示Label的宽度和高度。清单 2 中的代码片段设置了 Label 控件的背景、前景和对齐方式。Label的BorderBrush属性设置画笔来绘制Label的边框。Label控件的Content属性允许您将任何其他控件设置为Label控件的内容。标签的背景和前景属性设置标签的背景和前景色。创建一个Label控件并设置一个Label控件的名称、高度、宽度和内容。要将图像设置为标签的背景,我们可以将图像设置为标签的背景。以下代码片段将标签的背景设置为图像。原创 2023-01-30 15:14:11 · 1210 阅读 · 0 评论 -
WPF绘制表格
WPF的Grid布局使用起来很方便,但如果我想绘制一个带有边线的表格则显得有点儿力不从心。虽然Grid有ShowGridLines这个bool类型的属性,但此属性设为true时显示的虚线而且不能改变颜色。使用Border的BorderThickness属性可以控制Border各边的显隐粗细(粗细为0就是不显示)。使用BorderBrush属性则可灵活控制每个单元格的边线颜色。那么,如何让Grid“作table状”呢?使用Border控件。原创 2023-01-18 12:04:38 · 882 阅读 · 0 评论 -
在C#的WPF程序使用XAML实现画线
使用X1、Y1两个属性可以设置直线的起点坐标,X2、Y2两个属性则可以设置直线的终点坐标。Stroke(笔触)属性的数据类型是Brush(花刷),凡是Brush的派生类均可用于给这个属性赋值。因为WPf提供了多种渐变色花刷,所以画直线也可以画出渐变效果。同时,Line的一些属性还帮助我们画出虚线以及控制线段终点的形状。[在这里插入图片描述](https://img-blog.csdnimg.cn/9f3a3f75a7bf464db5aa9c73d1e0cbf5.png)原创 2023-01-13 09:40:56 · 1208 阅读 · 0 评论 -
我正在参加年度博客之星评选,请大家帮我投票打分,您的每一分都是对我的支持与鼓励。: http://t.csdn.cn/PgXPR
我正在参加年度博客之星评选,请大家帮我投票打分,您的每一分都是对我的支持与鼓励。原创 2023-01-04 14:29:29 · 338 阅读 · 3 评论 -
html前端跨域问题的解决方案
来,我们解释一下:首先通过第一个script脚本注册一个函数f,那么这个函数自然就存在了,后面使用的脚本也能用f这个函数,这个道理和你用script引入一个jquery然后后面用 $ 开始一通操作是一样的道理。但是但是前端这个时候注册了一个f函数呀,所以就会执行这个f(‘你好’),那么前端的数据也就请求回来了。首先是前端:使用ajax发送get请求,请求地址为http://127.0.0.1/api/get,由于前端页面使用file格式打开,所以在请求http协议的本机地址是会产生跨域问题。原创 2022-11-15 14:04:47 · 5860 阅读 · 0 评论 -
字和字节的区别
2、硬盘生产商是以GB(十进制,即10的3次方=1000,如1MB=1000KB)计算的,而电脑(操作系统)是以GiB(2进制,即2的10次方, 如1MiB=1024KiB)计算的,但是国内用户一般理解为1MiB=1M=1024 KB, 所以为了便于中文化的理解,翻译MiB为MB也是可以的。数据存储是以“字节”(Byte)为单位,数据传输大多是以“位”(bit,又名“比特”)为单位,一个位就代表一个0或1(即二进制),每8个位(bit,简写为b)组成一个字节(Byte,简写为B),是最小一级的信息单位。原创 2022-11-15 14:03:10 · 7222 阅读 · 0 评论 -
字和字节的区别
2、硬盘生产商是以GB(十进制,即10的3次方=1000,如1MB=1000KB)计算的,而电脑(操作系统)是以GiB(2进制,即2的10次方, 如1MiB=1024KiB)计算的,但是国内用户一般理解为1MiB=1M=1024 KB, 所以为了便于中文化的理解,翻译MiB为MB也是可以的。数据存储是以“字节”(Byte)为单位,数据传输大多是以“位”(bit,又名“比特”)为单位,一个位就代表一个0或1(即二进制),每8个位(bit,简写为b)组成一个字节(Byte,简写为B),是最小一级的信息单位。原创 2022-11-15 10:20:49 · 3663 阅读 · 0 评论 -
winform开发---C#读写txt文本
【代码】winform开发---C#读写txt文本。原创 2022-11-15 10:11:17 · 3251 阅读 · 0 评论 -
Winform窗体开发:限制只能启动一个exe程序,禁止多开客户端。
static class Program { /// /// 该函数设置由不同线程产生的窗口的显示状态。/// /// 窗口句柄 /// 指定窗口如何显示。/// /// 该函数将创建指定窗口的线程设置到前台,并且激活该窗口。} } /// /// 获取正在运行的实例,没有运行的实例返回null;} /// /// 显示已运行的程序。原创 2022-11-15 00:10:37 · 1660 阅读 · 0 评论 -
C#运行出现:基础连接已经关闭: 未能为 SSL/TLS 安全通道建立信任关系。
近期在使用RestSharp进行http请求时遇到这个错误,网上了解一些相关原因,大部分该问题都是证书问题引起的,就想我们在使用chrome浏览器打开某一网站时提醒该网站不是一个安全网址,可能存在被攻击的情况一下,需要我们进入高级选项手动进入该网址,在使用c#发送http请求时遇到该问题原因基本一致,想了解具体问题的可以搜一下x.509证书。发送Http请求前先请求一下SetCertificatePolicy()方法,将该网站的证书安全性验证设置为true即可解决该问题。/// 远程证书验证。原创 2022-11-14 15:38:32 · 2722 阅读 · 0 评论 -
SOAP--简单对象访问协议
HTTP用于实现 SOAP 的RPC 风格的传输, 而XML 是它的编码模式。一条 SOAP消息就是一个包含有一个必需的 SOAP 的封装包,一个可选的 SOAP 标头和一个必需的 SOAP 体块的 XML 文档。把 SOAP 绑定到 HTTP 提供了同时利用 SOAP 的样式和分散的灵活性的特点以及 HTTP 的丰富的特征库的优点。简单对象访问协议是交换数据的一种协议规范,是一种轻量的、简单的、基于XML(标准通用标记语言下的一个子集)的协议,它被设计成在WEB上交换结构化的和固化的信息。原创 2022-11-14 11:31:55 · 251 阅读 · 0 评论 -
VS2015创建的Winform项目中添加web引用
2.不同的地方时Add Web Reference 生成的 Reference.cs文件里,包含一个服务代理类,他负责与Web服务通信,它继承一个Soap类,使用SOAP协议,SOAP简单对象访问协议,基于XML语言。此外还包含一些Web服务类里定义的方法,和与之相关的异步调用方法和事件。2.不同的地方时Add Web Reference 生成的 Reference.cs文件里,包含一个服务代理类,他负责与Web服务通信,它继承一个Soap类,使用SOAP协议,SOAP简单对象访问协议,基于XML语言。原创 2022-11-14 10:46:02 · 910 阅读 · 1 评论 -
C#多线程学习总结
刚开始线程状态为ThreadState.Unstarted,然后我们启动线程,线程状态会从ThreadState.Running变为ThreadState. WaitSleepJoin。默认情况下,显式创建的线程是前台线程。声明一个静态函数当作线程的执行函数,该函数接受一个object类型的参数param,这个参数可以通过Thread.Start(param)传递到线程中。前台线程与后台线程的主要区别: 进程会等待所有的前台线程完成后再结束工作,但是如果只剩下后台线程,则会直接结束工作。原创 2022-10-24 19:59:03 · 1259 阅读 · 0 评论 -
C#基础---获取系统时间和设置获取的格式
函数应该返回一个值,比如是: dt=dt.AddYears(1),而不是dt.AddYears(1)。//dt1早于dt2,返回-1;//加Ticket时间,用数字表示当前时间。原创 2022-10-17 16:26:27 · 3214 阅读 · 0 评论 -
C#通过反射来拷贝对象数据
【代码】C#通过反射来拷贝对象数据。原创 2022-10-17 11:11:25 · 371 阅读 · 0 评论 -
c#中实现拷贝对象的案例
能不能有更优雅的解决方案。很多人一定很奇怪,之所以会出现这样的问题,就和值类型和引用类型有关,第一个值函数的 string 本身是个值类型,他在存储的时候,是直接开辟了一个存储空间,而第二个data类型的在存储的时候,其实是通过指针将变量和其存储空间链接在了一起,当声明data b=a时,就将b的指针指向了a的指针所指向的存储位置,而当将b.key=“2"赋值后,其实是将b.key所指向的存储空间赋值"2”,这个时候因为a和b的指针是指向同一个存储空间的,所以a.key和b.key的值同时变成了2。原创 2022-10-17 10:42:28 · 2611 阅读 · 0 评论 -
C# DataGridView删除指定行
这与之前设想的不对了,之前是想成功插入多少条数据,就在DataGridView里相应的删除这几行数据。现在想将以上表格数据插入数据库,之前是想每成功插入一行数据就在DataGridView里删除一行(即让这行不显示),至此,问题解决,赶紧记录下来。对于大牛来说,可能这些都不是问题,写在这里纯粹为了备忘。没有成功插入的不删除(即显示在DataGridView里)最终还是显示两行数据,但查询数据库发现5条数据已成功插入。后来G了一下,在此网站找到解决问题的灵感。//这里写插入数据库代码(略)原创 2022-10-17 08:38:13 · 4331 阅读 · 1 评论 -
c# DataGridView动态添加新行的二个方法
使用dataGridView1.Rows.Add()事件为DataGridView控件增加新的行,该函数返回添加新行的索引号,即新行的行号,然后通过该索引号操作该行的各个单元格,如dataGridView1.Rows[index].Cells[0].Value = “1”。要添加其他的单元格,用同样的方法即可。最后通过dataGridView1.Rows.Add(row)为dataGridView1控件添加新的行row。方法2适用于某些特殊场合,例如,要在新行中的某些单元格添加下拉框、按钮之类的控件时。原创 2022-10-17 08:35:52 · 6383 阅读 · 1 评论 -
c# 中的 DictionaryEntry 类
Hashtable 内的每一组对象就是一个DictionaryEntry。Key的值是不可以重复的,必须是唯一的,但Value的值可以是重复的。Hashtable就是一个DictionaryEntry的集合。例如我们要循环hashtable。在查询时,Key担当索引的功能。在一个Hashtable中。原创 2022-10-16 10:51:22 · 646 阅读 · 0 评论 -
C#获取DataGridView的总行数
/获取datagridview的行数。原创 2022-10-16 08:54:00 · 1683 阅读 · 0 评论 -
C#一个对象只传递值不传递引用到另一个对象---Clone的用法
首先这段代码实际上是不会运行的,因为浅复制不会复制引用,也就是在print(t2.ins.bi)时,实际上t2.ins是空,但t2.i和t2.str是有值的,而且在后续对t2.i和t2.str进行改动时并不会影响到t1的值,这一部分的结果使我们想要的。对于引用类型,对象和副本对象引用同一个内存地址,当在对象或者副本对象修改引用成员后,引用类型的成员就发生变化。深拷贝不管是值类型还是引用类型,对象和副本对象修改成员属性都只会改变各自对象的值,两个对象是完全独立的实体。实现深拷贝可以通过序列化的方法实现;原创 2022-10-15 08:28:00 · 1201 阅读 · 0 评论 -
C#值传递与引用传递的区别和用法
因为值类型在作为参数传入的时候,传递的是一个新的栈空间,那么传入后,无论在方法的内部如何修改传入的参数,都无法改变外部的值类型变量,所以我们可以使用ref和out参数去修饰,使得传入的参数不是就的栈空间,而是值对象指向的那块栈空间,这样在方法内部修改,操作后就可以影响外部参数。虽然String是引用类型,但是因为修改字符串的本质都是新开辟堆空间,然后修改引用,那么上面的语句执行的本质是在堆上开辟一个新空间,然后将b指向新开辟的空间,里面的值是“aaa”。引用类型:自定义类,数组,字符串,接口,集合。原创 2022-10-15 08:14:32 · 993 阅读 · 0 评论 -
c# string数组的定义和赋值
数组的数组(交错的):byte[][] scores = new byte[5][];D://二维整数数组,初值mf5[0,0]=1,mf5[0,1]=2,mf5[1,0]=3,mf5[1,1]=4。数组的数组(交错的):byte[][] scores;原创 2022-10-14 15:10:45 · 10575 阅读 · 0 评论