少有人走的路

勇哥的工业自动化技术网站

本站视觉相关教程整理贴子,持续更新

2020年勇哥的机器视觉实验项目清单(大纲)

勇哥的免费视频教程清单

勇哥在B站发布的视频清单

勇哥谈下C# winform下自定义用户界面的原理

勇哥注:

用户自定义界面用途非常广泛,其原理有点小神秘,本篇勇哥来聊聊这个话题。


什么是用户自定义界面呢?

首先我们看下VS的winform面板编辑器,它可以看做是一个用户自定义界面。

如下图所示:

用户左边拖控件,拖到form上,可以排放位置。选中控件,还可以在右边设置它的属性。

基于visual c#.net的虚拟PLC仿真软件开发

多年前勇哥的一篇论文,关于plc仿真器的开发。有需要的朋友可以拿来参考一下。                中国石油大学(华东)现代远程教育毕业设计(论文)  题    目:基于visual c#.net的虚拟PLC仿真软件开发学生姓名:   刘小勇  &nb

在创建窗口句柄之前,不能在控件上调用 Invoke 或 BeginInvoke

在创建窗口句柄之前,不能在控件上调用 Invoke 或 BeginInvoke


image.png


解决办法:

使用下面红框所示的卫语句即可。

image.png

HALCON error #5154: Wrong values for image area in operator get_window_extents

对于使用docking的童鞋来讲, 如果你的窗体中使用了halcon窗体控件, 就可能出现本文所示的错误.这个时候你应该是双击或者拖动了窗体标签吧?! 然后就会出现下面的错误.HALCON error #5154: Wrong values for image area in operator get_window_extents你只有两个选择: 要么找到你的包含halcon窗体控的窗体为啥会出现这个错误. 要么你就不让用户拖动或者双击这个窗体标签.勇哥选择的是后者

C# DataGridView控件中DataGridViewComboBoxColumn 怎么样使用下拉更改事件

勇哥注:

这个问题勇哥在网上找了许久。

假设A、B单元格都是下拉DataGridViewComboBoxColumn。

我想A单元格选中一个内容,B单元格进行刷新列表。

C# 让datagridview的DataGridviewComboBoxColumn即可以下拉,还可以输入内容


让datagridview的DataGridviewComboBoxColumn即可以下拉,还可以输入内容

这个需求是有必要的。

勇哥参考了一些网上的资料,证明winform还是可以实现此功能的。

虽然操作上有点不太方便,比如输入内容后回车不能结束编辑,需要点内外的单元格结束编辑。

但是好歹是实现的要求,而且不用重写一些方法。


效果如下:

image.png

勇哥谈下去除List的重复元素的问题

勇哥注:

去除List的重复元素的问题是比较常见的需求,C#有标准的做法,以后不要自己写了。


    public class Student
    {
        public string Name { get; private set; }
        public int Id { get; private set; }
        public string Hobby { get; private set; }
        public Student(string name, int id, string hobby)
        {
            this.Name = name;
            this.Id = id;
            this.Hobby = hobby;
        }
        /// <summary>
        /// 方便输出,重写ToString方法
        /// </summary>
        /// <returns></returns>
        public override string ToString()
        {
            return string.Format("{0}\t{1}\t{2}", this.Name, this.Id, this.Hobby);
        }
    }

    public class Compare : IEqualityComparer<Student>
    {
        public bool Equals(Student x, Student y)
        {
            return x.Id == y.Id;//可以自定义去重规则,此处将Id相同的就作为重复记录,不管学生的爱好是什么
        }
        public int GetHashCode(Student obj)
        {
            return obj.Id.GetHashCode();
        }
    }

C# treeview控件的NodeMouseClick、Click事件的问题(单击后SelectedNode不是当前节点 ,有可能为null或者是上一次的节点)

这个问题浪费了勇哥一个小时的时间。

即你在NodeMouseClick、Click事件中获取SelectedNode,有可能为null或者上一次的节点。


希望实现点击TreeView控件下的不同子节点,显示其对应的内容。

C#的 IComparable 接口

勇哥注:

IComparable 接口常用于排序。

比如可以用于List<T>.Sort()方法,对T是自定义的类型的数据结构做排序。

如果T是值类型,则有内建排序规则,不需要特殊处理。

C#的只读集合的创建、用途

勇哥注:

我们知道C#的集合有两类

    << 1 2 3 4 5 6 7 8 9 10 > >>
    «    2025年12月    »
    1234567
    891011121314
    15161718192021
    22232425262728
    293031
    控制面板
    您好,欢迎到访网站!
      查看权限
    网站分类
    搜索
    最新留言
    文章归档
    网站收藏
    友情链接

    Powered By Z-BlogPHP 1.7.3

    Copyright www.skcircle.com Rights Reserved.

    鄂ICP备18008319号


    站长QQ:496103864 微信:abc496103864