记录技术与思考

清晰表达、持续积累、长期主义。

c# 添加指定扩展名的系统右键菜单(Windows11以前)

在上篇文章c# 添加系统右键菜单(Windows11以前)中我们说了怎么在文件夹上增加一个菜单项,但是我们可能还需要给某个单独的扩展名添加右键菜单。这里我们不用常见的扩展名来做,我们新做一个.jx的扩展名,用我们自己的程序打开它。首先我们要在注册表中注册我们的扩展名,我们可以打开regedit看一下,在HKEY_CLASSES_ROOT下

Winform Tab增加关闭标签页

Winform的Tab控件,有新增有移除,但是呢,缺了一个标签页上的关闭按钮,这个东西说重要也重要,说不重要也不重要。这里就说一下怎么添加这玩意。这玩意需要重绘tab控件,所以我们需要处理DrawItem事件,在DrawItem里面把这个X画出来。这里我们就用英文字母的x来当作关闭按钮,也不加什么鼠标事件之类的,就简简单单的实现一下。首先

c# 添加系统右键菜单(Windows11以前)

今天介绍一下在注册表中添加系统右键菜单实现在文件夹的右键菜单中添加,删除以及查找是否已经添加的方法。注意这里的方法仅限于Windows11之前使用,Windows11默认的右键菜单已经改变,需要使用其他方式处理。查询是否存在RegistryKey shell = Registry.ClassesRoot.OpenSubKey("direc

Winform TabControl动态添加TabPage

在Winform中,标签页是我们很难绕开的一个控件,而且,我们经常有动态添加标签页的需求。这里介绍一个最简单的添加方法:首先,我们把需要添加的内容做成UserControl,这样,我们就可以在添加的时候不用考虑布局的问题了,所有的内容都在UserControl里,这里我们假定有一个TestControl已经写好了对应的UI内容。编写以下代

FileSystemWatcher使用方法

在实际工作中,我们经常有需要监控部分文件或文件夹更改的需求。这时候,FileSystemWatcher就派上用场了。首先我们new一个FileSystemWatcher实例FileSystemWatcher fileSystemWatcher = new FileSystemWatcher();然后我们可以通过设置Path来指定一个监视目

Rider离线使用Nuget包的方法

Rider离线使用Nuget包的方法

有时候,我们的开发环境可能没有网络,vs也不太好安装。这时候我们就可以使用Rider。但是没有Nuget的话,很多东西用起来很复杂。所以这里介绍一下Rider离线配置Nuget的方法。从Nuget的官网下载对应的包,扩展名为.nupkg。打开https://www.nuget.org/搜索你要找的包名,打开对应的详情页面,这里以Super

Winform解决跨线程更新UI的问题

最近又拿起了Winform的程序,由于要起socket server,所以需要起线程,这里就遇到了经典的跨线程UI调用的问题。如果什么都不写,直接由线程更新UI,会报错:线程间操作无效。这里的解决方案一般有三种:第一种,去掉主线程安全检查。这种方式非常不安全,可能引起崩溃,所以基本上不推荐这种方式: Control.CheckForIll

.net core想到哪写道哪之asp.net core的机密

我们往往需要在项目里使用一些机密数据,比如数据库的密码,再比如一些密钥。这些东西一般来说我们都会放到配置文件里。但是这些东西是跟自己的账号相关的,我们在一些多人合作的项目中,尤其是开源项目肯定不能直接把这些内容写到配置文件,因为这会泄露我们的密钥或者密码。所以机密这种东西应运而生,我们可以通过配置机密信息把我们的密钥,密码之类的东西都放到

.net core想到哪写道哪之hello world

今天,我们来创建一个helo world,讲一讲.Net 6最新的顶级语句的问题。在.Net 6中最大的变化应该就是多了个顶级语句。这玩意是个啥呢,它让C#看起来像个脚本语言了,一个Hello World通篇就一句话Console.WriteLine("Hello, World!");是不是很有脚本语言那个味了?是的,这就是微软为了推广c