2023-03-31 14:39:17
让datagridview的DataGridviewComboBoxColumn即可以下拉,还可以输入内容这个需求是有必要的。勇哥参考了一些网上的资料,证明winform还是可以实现此功能的。虽然操作上有点不太方便,比如输入内容后回车不能结束编辑,需要点内外的单元格结束编辑。但是好歹是实现的要求,而且不用重写一些方法。效果如下:演示代码: public partial class Form1 :...
2023-03-26 16:26:25
勇哥注:去除List的重复元素的问题是比较常见的需求,C#有标准的做法,以后不要自己写了。 public class Student
{
public string Name { get; private set; }
public int Id { get; private set; }
public string Hobby...
2023-03-24 09:32:41
勇哥注:此控件是继承TreeView控件重写的用户组件,主要特点是可以在节点文本右边添加按钮。按钮本身就是一个Button类,可以设置按钮的显示相关的属性,以及事件等。此控件可以方便提供IO、气缸、轴的测试功能,不用双击弹出另一个窗口做这些事。有效的提升了用户体验。使用方法说明:(1)此控件带一个WpfTreeHelper类,以方便操作控件(2)初始化树时,无论是根结点,还是子节点,都使用AddN...
2023-03-24 08:16:35
这个问题浪费了勇哥一个小时的时间。即你在NodeMouseClick、Click事件中获取SelectedNode,有可能为null或者上一次的节点。希望实现点击TreeView控件下的不同子节点,显示其对应的内容。但发现在TreeView控件的MouseNodeClick事件中利用(TreeView)sender).SelectedNode.Name获得子节点的Name与实际点击的子节点并不一致...
2023-03-23 09:59:48
vs团队管理器的git功能中,当本地文件和远程文件有差异的时候。我们可以选择“比较文件”然后就弹出差异比较功能。其中左边是远程的,右边是本地的。但问题是,如何把左边的差异部分推到右边去呢? 或者如何把右边的差异推送到左边去呢?勇哥用过文件比较Beyond Compare这个软件,它是可以左右互推功能的。但是“文件比较”找不到类似的功能。如果使用ctrl+c, ctrl+v 也是没有效果的。难道“...
2023-03-16 09:07:45
勇哥注:IComparable 接口常用于排序。比如可以用于List<T>.Sort()方法,对T是自定义的类型的数据结构做排序。如果T是值类型,则有内建排序规则,不需要特殊处理。只是对T是你自定义的数据类型时,需要把这个数据类型继承IComparable 接口,然后实现接口(即自定义的排序规则代码)举个栗子:下面的数据结构StageDatastruct,已经继承的IComparabl...
2023-03-13 17:23:44
这篇文章是关于.Net的反射优化(有效率地使用反射)的技术。文中有翻译不准确、难以理解的内容可在评论出指点或咨询。概述反射(Reflection)是一种非常强大的.Net平台的特性。System.Reflection命名空间下提供了一套丰富的加载和调用程序集和对象的接口,除此之外它还提供了 了运行时动态地检索元数据信息的方法,比如获取属性、字段信息,特性信息等。使用反射确实可以使开发人员的生活变得...
2023-03-08 21:24:38
2D测量之一通过2D测量可以获取一些特征,如• 物体的范围,也就是说组成物体的像素数组• 物体的方向• 物体间或者物体组成部分间的角度• 物体的位置• 物体的尺寸 ,也就是说他的宽度高度或者物体间的距离,物体组成部分间的距离• 物体的个数分析measure_metal_part_first_example.hdev例程第一步:创建区域并提取基础信息• 通过threshold算子提取感兴趣的区域•...
2023-03-08 09:34:26
明明安装有git,为啥VS的团队管理器提示说需要安装第三方git命令,如下图所示:如果点击安装,vs打开了浏览器,跳到了git的下载页。下载后,再次安装git,重新打开vs,结果依旧。这是什么鬼?网上说的下面的设置,也没问题。最后说结论,有问题的这个版本是vs2015,但后来勇哥发现同一台机器上有一个vs2019的版本,直接打开项目(已含有.git目录),观察右下角可以看到git功能是有了。所以结...
2023-03-05 08:43:59
勇哥注:我们知道C#的集合有两类普通集合泛型集合前者存在于 System.Collections 命名空间下,属类型不安全的,后者存在于 System.Collections.Generic 命名空间下,属类型安全的。不可变对象也就是本文说的只读对象, 定义为一旦创建就不可变更的对象, 在 .NET Core 中就存在着这三大不可变集合 IReadOnlyListIReadOnlyDictiona...