Csharp强制设置系统焦点(前台窗口)
系统焦点在Windows中,系统的焦点就是当前处于前台的窗口。通过设置焦点,可以控制用户正在使用的应用程序。这里以winform应用为例。 Api调用C#需要调用Win32 Api才可以控制焦点,这里用到的是user32.dll中的SetForegroundWindow()函数 在微软提供的文档中[1],可以看到C++里的用法: 123BOOL SetForegroundWindow( [in] HWND hWnd//窗口句柄); C#里没有HWND类型,与之对应的是IntPtr类型,...
Csharp接口进阶
在这篇文章里,曾经讲解过C#接口的基本概念。掌握这些基本概念后,本文将补充一个进阶内容。 显式接口成员实现 该功能用于为同一个类中实现的不同接口创建不同的方法(方法名称相同) 语法: 123456interface I1{void Method(string s);}interface I2{void Method(string s);}class MyClass:I1,I2...void I1.Method(string s){...&...
Csharp-winform窗口拖动详解
代码实现 首先,在设计器里双击增加以下三个方法,然后填入以下代码 12345678910111213141516171819202122232425262728293031323334 private Point mouseLocation;//表示鼠标对于窗口左上角的坐标的负数private bool isDragging;//标识鼠标是否按下 private void MainWindow_MouseDown(object sender, MouseEventAr...
Csharp读书笔记(六)-枚举与集合
枚举 枚举只允许几个特定的值 enum数据类型只允许某个数据取某些特定的值 12345enum Computers{ Computer1=1,//不仅可以指定名称,还可以指定值 Computer2=2, Computer3=3,//这个逗号可以省略} enum也是一种类型,每一项都可以当作参数传递,如Computers.Computer1这样传递 枚举中的每一项都必须有名称,但不一定需要指定一个值 可以使用.ToString()方法来获得任意一项的名称,使用强制转...
Csharp读书笔记(五)-接口与抽象类
接口基本概念 接口告诉类必须实现某些方法和属性 如果没有实现,编译器会报错 接口可以定义一个类中必须有的方法,这样一个类只要实现接口,就可以做特定的事情 使用interface关键字定义接口 接口不能添加任何字段,因为它不存储数据(但是可以包含属性) 命名规范:接口名称以I开头 只需要在接口中添加方法名和参数,因为接口不做任何事情 接口中的所有方法都是抽象方法,不能有方法体 ^bbfa07 一个类只能继承一个类,但可以实现多个接口 ^018e94 不可以实例化接口,不过可以引用接口 接口就...
Csharp读书笔记(四)-继承
继承基本概念 继承可以构建彼此关联且有共同行为的类 被继承的叫做基类 继承别人的叫做子类 类图中,箭头由子类指向基类 沿着类图上行,可以发现类的相同特征越少 沿着类图下行,可以发现类的相同特征越多 这就好像生物的分类——界门科目纲属种 使用冒号可以继承一个基类 一个类只允许继承一个类,这是一种保护 合并两个类 首先创建类图 找出两个类相同的字段与方法 把相同的放到一个基类中去 把不同的放在子类,要[[#覆盖]]的也需要写入 画上子类指向基类的箭头 覆盖 在子类中,可以覆盖基类的方法 举...
Csharp读书笔记(三)-封装
封装 封装保证类中一些数据是私有的 私有字段、方法只能在类内部访问,使用关键字private 封装可以避免不必要的错误 属性 属性对于其他对象来说就是字段 可以通过属性获取或设置一个后备字段 属性首字母大写,后备字段应小写 属性的好处:在获取或设置时可以执行一些语句(比如设置一些有关的字段),防止直接更改字段导致逻辑计算错误 获取get 设置set 每个set都有一个名为value的参数,获取的是设置的值 可以只设置get或set中的一个 举例: 1234567891011121314...
obsidian文章发布到hexo攻略
目标 将obsidian中带有反向链接的markdown文章在hexo中正常显示 快速添加文章头部的标题、时间、标签等 使用的软件/项目 obsidian vscode markdownlint插件 Cyrusky/hexo-backlink 迁移项目文件首先,复制要发布的文档到_post文件夹。然后在vscode中打开hexo文件夹。 规范markdown格式vscode中安装markdownlint插件,启用后打开要发布的文章,打开问题面板。这时可能会检测出几个...
Csharp读书笔记(二)-数组
数组 数组是一组变量,可以存储和修改多个数据 创建数组时,需要指定类型、名称和元素数量 可以为引用创建数组,但是创建时只会创建引用变量,不会创建实例 必须分别为每一个对象创建实例 数组的索引是从0开始的 比如,创建一个元素数量为6的int数组,int[] numbers=new int[6],此时访问numbers[5],这时获取的元素为第6个 Random类可以随机生成数字 使用时,先创建实例,再使用Next()方法,举例:调用GetRandom()时,以下代码会返回一个9...
Csharp读书笔记(一)-对象与引用
这个系列是head first csharp书籍的读书笔记,总结提炼了一些C#的核心内容,以及自己的个人理解。 程序从哪里来 IDE是一种方便的文件编辑器 .NET提供很多工具来帮助你完成任务 程序在CLR中运行 using语句让你可以使用其他命名空间中的类 命名空间包含类,类包含方法,方法由语句组成 方法前的类型指出了这个方法的返回值,方法后的括号中包含参数 对象 由一个类创建新对象时,称为这个类的一个实例 ^be690f 使用new关键字创建实例 静态类不用创建实例,但其他类需要创建...




