让datagridview的DataGridviewComboBoxColumn即可以下拉,还可以输入内容
这个需求是有必要的。
勇哥参考了一些网上的资料,证明winform还是可以实现此功能的。
虽然操作上有点不太方便,比如输入内容后回车不能结束编辑,需要点内外的单元格结束编辑。
但是好歹是实现的要求,而且不用重写一些方法。
效果如下:

让datagridview的DataGridviewComboBoxColumn即可以下拉,还可以输入内容
这个需求是有必要的。
勇哥参考了一些网上的资料,证明winform还是可以实现此功能的。
虽然操作上有点不太方便,比如输入内容后回车不能结束编辑,需要点内外的单元格结束编辑。
但是好歹是实现的要求,而且不用重写一些方法。
效果如下:

勇哥注:
去除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();
}
}勇哥注:
此控件是继承TreeView控件重写的用户组件,主要特点是可以在节点文本右边添加按钮。
按钮本身就是一个Button类,可以设置按钮的显示相关的属性,以及事件等。
这个问题浪费了勇哥一个小时的时间。
即你在NodeMouseClick、Click事件中获取SelectedNode,有可能为null或者上一次的节点。
希望实现点击TreeView控件下的不同子节点,显示其对应的内容。
vs团队管理器的git功能中,当本地文件和远程文件有差异的时候。
我们可以选择“比较文件”

勇哥注:
IComparable 接口常用于排序。
比如可以用于List<T>.Sort()方法,对T是自定义的类型的数据结构做排序。
如果T是值类型,则有内建排序规则,不需要特殊处理。
这篇文章是关于.Net的反射优化(有效率地使用反射)的技术。
文中有翻译不准确、难以理解的内容可在评论出指点或咨询。
概述
反射(Reflection)是一种非常强大的.Net平台的特性。System.Reflection命名空间下提供了一套丰富的加载和调用程序集和对象的接口,除此之外它还提供了 了运行时动态地检索元数据信息的方法,比如获取属性、字段信息,特性信息等。
使用反射确实可以使开发人员的生活变得轻松,但是应该尽可能少地使用它,换句话说,只在必需的情况下使用它。它在很大程度上影响了程序的性能。以下是几种提升反射效率的方法。
明明安装有git,为啥VS的团队管理器提示说需要安装第三方git命令,如下图所示:

如果点击安装,vs打开了浏览器,跳到了git的下载页。

勇哥注:
我们知道C#的集合有两类
Powered By Z-BlogPHP 1.7.3
Copyright www.skcircle.com Rights Reserved.