
C#
文章平均质量分 63
imxiangzi
这个作者很懒,什么都没留下…
展开
-
来,创建一个高效的IMEI编码生成器
0x1. 起因话说,今天下午群里面有个同学求助一段代码。他想问的是,这个tempimei[j * 2] - 0x30是啥子意思?0x2. 其实这是很常见的一种写法我们留意到tempimei这个变量其实是一个字符串。在.NET中,对一个字符串取索引,则是取出对应的字符。字符可以隐式转换为int,所以tempimei[j*2]-0x30的意思是,将j*2索引位置的...转载 2019-05-09 20:22:50 · 11182 阅读 · 1 评论 -
使用MDI窗体实现多窗口效果
C#MDI窗体实现多窗口效果 Visual C#是微软公司推出的下一代主流程序开发语言,他也是一种功能十分强大的程序设计语言,正在受到越来越多的编程人员的喜欢。在Visual C#中,提供了为实现MDI程序设计的很多功能。本文就是通过一个具体的例子来详细的介绍在Visual C#中的MDI编程。 一程序设计及运行的环境: (1)视窗2000服务器版 (2).Net Fram...转载 2018-08-09 12:02:52 · 6672 阅读 · 0 评论 -
关于C#监视剪贴板信息
1、常规方法在C#中,有一个常规检测剪贴板的方法,用的是 System.Windows.Forms.Clipboard;使用起来很简单,代码如下:/// <summary>/// 设置剪贴板的文本内容/// </summary>/// <param name="s">文本内容</param>public static void ...转载 2018-08-11 11:45:16 · 4822 阅读 · 0 评论 -
WinForm下ComboBox添加项与设定预选项
WinForm下的ComboBox默认是以多行文本来设定显示列表的, 这通常不符合大家日常的应用, 因为大家日常应用通常是键/值对的形式去绑定它的.那么用键值对的形式如何做?因为Combox的每一个项的值是一个object, 实际上就是一个键/值对.我用的是下面这个类的实例作为它的一个项: /// <summary> /// ComboBox的项 ...转载 2018-08-11 17:22:56 · 11137 阅读 · 0 评论 -
[Winform]通过钩子监控键盘操作和鼠标移动
摘要有这样一个需求,在程序隐藏之后,需要监控当前电脑是否有操作,如果1分钟内,无操作,则弹出视频,循环播放。解决办法从网上找的一个解决办法,可以通过钩子的方式实现,这里记录一下。 /// <summary> ///监控键盘钩子 /// </summary> public class KeyboardHook { ...转载 2018-08-13 23:12:49 · 1325 阅读 · 0 评论 -
RichTextBox扩展控件的中文乱码解决方案
在程序中有利用RichTextBox进行一些操作的需求,无意中在CodeProject中发现了一个封装比较完整的RichTextBox控件(http://www.codeproject.com/KB/edit/csexrichtextbox.aspx),控件封装的还是不错,测试界面效果如下: 总体来说,支持各种格式的定义以及图片的插入,效果还是相当不错,不过在实际中使用发现,用代码插入的中...转载 2018-09-06 10:38:11 · 2988 阅读 · 0 评论 -
如何在C#下利用RichTextBox打开一个有文字格式和图片的Word文档
小知识点:.Net Framework 4.0 和.Net Framework 4.0 Client Profile区别: .NET Framework Client Profile是.NET Framework的裁剪版本。它面向客户端应用程序。它提供 Windows Presentation Foundation (WPF)、Windows 窗体、Windows Communica...转载 2018-09-06 10:38:51 · 1202 阅读 · 0 评论 -
C# RichTextBox显示不同颜色文字
#region 日志记录、支持其他线程访问 public delegate void LogAppendDelegate(Color color, string text); /// <summary> /// 追加显示文本 /// </summary> /// <param name="color">文本颜色</param> /// &...转载 2018-09-06 10:39:33 · 3780 阅读 · 0 评论 -
C# 将程序添加开机启动的三种方式
前言最近在研究程序随系统启动,发现在 win7 上因为权限的问题,写注册表的时候总是会出现问题,写不进去导致的不能自动启动,随后决定仔细的看一看这方面的问题。查资料过程中主要发现有三种方式可以添加到启动,分别是: 1. 开始菜单启动; 2. 注册表启动项; 3. Windows 计划任务。一、开始菜单启动在很久以前,刚开始捯饬电脑的时候,就知道的一个开机启动的方法,那时候就是...转载 2018-09-12 09:19:54 · 3841 阅读 · 0 评论 -
TreeView双击节点而不改变节点的折叠/展开状态
这是C#的一个漏洞,Microsoft在TreeView控件中自作主张地做成双击节点时自动展开/折叠节点。然而如果用户自定义NodeMouseDoubleClick事件,同时又不希望改变结点的展开/折叠状态,就无法直接达到这一效果。可以通过曲线救国的方式达到了目的。首先声明一个全局变量: public int m_MouseClicks = 0; //记录鼠标在myTreeView控件上按...转载 2018-08-04 16:57:02 · 1767 阅读 · 0 评论 -
C# TreeView 控件的综合使用方法
1、概述 该篇文章开发使用的语言c#,环境visualstudio2010,sql数据库.主要内容包括:(1)treeView控件添加根节点、子节点的基本方法,节点的删除。(2)把treeView控件的节点数据保存到SQL数据包括中,把数据库数据表中的数据动态加载到treeView控件中,控件节点的递归删除(指的是递归删除数据表的数据)2、TreeView控件的基本用法 ...转载 2018-07-25 12:28:36 · 41455 阅读 · 4 评论 -
【转】关于C#绘制qq好友列表控件
if(items[i].IsOpen){ //如果Item的列表是展开的 那么还得绘制他的子项 for(int j = 0;j < Items[i].SubItem.Count;j++){ DrawSubItems(Items[i].SubItems[j]); //绘制子项 } ...转载 2018-06-26 12:15:21 · 1034 阅读 · 0 评论 -
C# WinForm技巧“将Form嵌入到Panel”
虽然有 TabControl控件, 但是为了减少主窗体的代码量, 可以将部分分页的功能模块放置于一个 Form 中, 当调用时, 直接把这个 Form嵌入到一个 Panel中即可.示例如下:要嵌入的 Form: public partial class FormEmbed : Form { public FormEmbed() { I...转载 2018-07-02 10:28:43 · 2903 阅读 · 0 评论 -
C# winform Panel 获取滚轮事件
使用 Panel 做为控件容器时,设置 Panel.AutoScroll=true时,在适当的时候将会出现滚动条,但是只能通过拖动滚动条来调整滚动条的位置,如果想要用鼠标中间键来控制滚动条的位置,可以通过下面几步来完成 1.在构造函数中加上 Panel1.MouseWheel += new System.Windows.Forms.MouseEventHandler(this.Panel1_Mou...转载 2018-07-02 10:29:24 · 2400 阅读 · 0 评论 -
C#WinForm窗体内Panel容器中嵌入子窗体、程序主窗体设计例子
C#WinForm父级窗体内Panel容器中嵌入子窗体、程序主窗体设计例子在项目开发中经常遇到父级窗体嵌入子窗体所以写了一个例子程序,顺便大概划分了下界面模块和配色,不足之处还望指点主窗体窗体采用前面一篇博客设计扁平化窗体 C#自定义Winform无边框窗体主要思路1 this.IsMdiContainer=true;//设置父窗体是容器2 Son mySon=new Son();//实例化子窗...转载 2018-07-02 10:30:10 · 3787 阅读 · 3 评论 -
C#-WinForm-菜单和工具栏
通用属性: Enabled - 指示是否启用该控件。 Visiable - 确定该控件是启用还是隐藏的。 Checked - 指示组件是否处于选中状态。 点击事件。工具箱→菜单和工具栏1、ContextMenuStrip - 右键快捷菜单 - 填写选项点击事件常用属性: Items - 在 ToolStrip 上显示的项的集合。 每一项的子项在 DropDownItems 集合中 ...转载 2018-07-02 10:32:20 · 7814 阅读 · 0 评论 -
C# WinForm窗体及其控件自适应各种屏幕分辨率
C# WinForm窗体及其控件自适应各种屏幕分辨率一。说明 我们自己编写程序的界面,会遇到各种屏幕分辨率,只有自适应才能显的美观。实际上,做到这点也很简单,就是首先记录窗体和它上面控件的初始位置和大小,当窗体改变比例时,其控件的位置和大小也按此比例变化即可。因为窗体上控件的位置和大小是相对于自己所在的窗体的,也就是所谓的窗口坐标。 在这里我们只考虑相对于自己窗体的窗口坐标更简单,也就是成...转载 2018-07-02 10:33:56 · 1428 阅读 · 1 评论 -
C# Winform 界面中各控件随着窗口大小变化
在做一项工程中,由于不确定目标平台的分辨率,而正常使用要求铺满整个屏幕,所以界面中的各个控件必须能够适应窗口的变化。首先想到的就是控件的百分比布局,但是再尝试写了几个控件的Location和Size之后,发现这真是一项浩大的工程,方法是在太笨,不如将控件百分比布局作为一个类,专门来负责。在网上找到了这种思想的代码 http://blog.sina.com.cn/s/blog_45eaa01a01...转载 2018-07-02 10:34:47 · 10769 阅读 · 0 评论 -
.NET面试题系列[9] - IEnumerable
.NET面试题系列[9] - IEnumerable.NET面试题系列目录什么是IEnumerable?IEnumerable及IEnumerable的泛型版本IEnumerable<T>是一个接口,它只含有一个方法GetEnumerator。Enumerable这个静态类型含有很多扩展方法,其扩展的目标是IEnumerable<T>。实现了这个接口的类可以使用Foreac...转载 2018-06-29 10:36:52 · 242 阅读 · 0 评论 -
C#开机自动启动程序代码
新建一个winform拖一个checkbox进来。。然后设置它的changed事件。已经测试过,可以直接复制使用。private void checkBox1_CheckedChanged(object sender, EventArgs e) { if (checkBox1.Checked) //设置开机自启动 ...转载 2018-09-12 09:20:24 · 2530 阅读 · 0 评论 -
C# 线程调用主线程中的控件
由于项目的需要,最近几天一直在做串口和数据库。由于C#使用的时间不长,所以在编写代码和调试的过程中总是遇到意想不到的问题,比如在使用串口接收数据的时候,在接收数据事件中想把接收的数据放入一个textbox作显示,但是明明非常简单的代码,在编译的时候总是提示有错误。后来查看网上资料,才知道C#还有委托,匿名等等之类的新东西。下面我就把我这几天的经验和大家分享一下。这次就主要说说委托和匿名方法,以后在...转载 2018-09-12 21:22:18 · 5457 阅读 · 0 评论 -
Win7 开机启动
1.注册表里面写代码,设置程序以开机启动; 但这样会需要管理员权限,添加程序以管理员权限启动后,又无法直接进入到软件启动界面,UAC控制 代码一:/// <summary> /// 设置应用程序开机自动运行 /// </summary> /// <param name="fileName">应...转载 2018-09-28 22:56:14 · 439 阅读 · 0 评论 -
c# 关于获取exe路径
C#获取程序路径的方法中需要注意的地方(版本1)获取运行程序路径的方法主要有以下7种:System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName 他获取的是Module的文件名,如果在VS2008的调试环境中,获取的是 [程序名].vshost.exe的完整文件名。 System.Environment.Curr...转载 2018-09-29 09:34:07 · 3428 阅读 · 0 评论 -
C#中Invoke的用法()
invoke和begininvoke 区别一直对invoke和begininvoke的使用和概念比较混乱,这两天看了些资料,对这两个的用法和原理有了些新的认识和理解。 首先说下,invoke和begininvoke的使用有两种情况: 1. control中的invoke、begininvoke。 2. delegrate中的invoke、begininvoke。 这两...转载 2018-09-29 17:18:20 · 576 阅读 · 0 评论 -
C# delegate方法invoke和beginInvoke的区别
class Program { delegate void test(); static void Main(string[] args) { test ts = new test(TestDelegate); ts.BeginInvoke(null,null); //使...转载 2018-09-29 17:31:30 · 2073 阅读 · 0 评论 -
用TextWriterTraceListener实现log文件记录 (转载)
log4net之类3方组件确实很方便,但是想写个小小的demo之类的程序,有点用不起啊。微软自带的TraceListener要实现一个简易的日志帮助类还是很简单的,直接上代码,自己备用,也希望对同样烦恼的哥们有用: 1 2 3 4 5 6 7 8 9 10 11 12 13 14...转载 2018-09-29 20:08:31 · 998 阅读 · 0 评论 -
静态构造函数
先看一道常见题目,以下代码的执行结果是什么? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 class A { ...转载 2018-09-29 20:20:22 · 965 阅读 · 1 评论 -
C# 简易异步日志类 [ C# | Log | TextWriterTraceListener ]
前言 即使是小型项目,也需要日志的功能,这里就不讨论Log4Net之类的框架,提供一个异步的、控制台输出+日志文件输出的简易日志帮助类。 正文 一、帮助类文件Logger.cs//=========================================//// 作 者:农民伯伯// 邮 箱:over140@gmail.com// 博 客:http://...转载 2018-09-29 20:35:19 · 997 阅读 · 1 评论 -
lock 语句(C# 参考)
lock 语句获取给定对象的互斥 lock,执行语句 lock,然后释放 lock。 持有 lock 时,持有 lock 的线程可以再次获取并释放 lock。 阻止任何其他线程获取 lock 并等待释放 lock。lock 语句具有以下格式C#lock (x){ // Your code...}其中 x 是引用类型的表达式。 它完全等同于C#object ...转载 2018-10-29 10:26:05 · 721 阅读 · 0 评论 -
C# 添加Windows服务,定时任务。
源码下载地址:http://files.cnblogs.com/files/lanyubaicl/20160830Windows%E6%9C%8D%E5%8A%A1.zip 步骤 一 、 创建服务项目。 步骤二 、添加安装程序。 步骤三 、服务属性设置 【serviceInstaller1】。 4.1 添加定时任务 public partial c...转载 2018-09-28 22:23:57 · 3793 阅读 · 0 评论 -
使用C#创建计划任务(How to create a Task Scheduler use C# )
本文主要讲解了如何使用C#来创建windows计划任务。 需求:在不定时间段运行多个后台程序(winfrom,wpf,console,等等)用于更新数据。 问题:为什么要使用计划任务,而不直接在程序中使用一个计时器来触发呢? 答:最明显的一点,使用计时器程序一直在后台运行着,但需求中只需要一天运行一次,或一个月运行一次。一直后台跑着计时这不白浪费CPU资源么。 解决...转载 2018-09-28 22:03:25 · 5225 阅读 · 0 评论 -
在VS中如何让C#语言编写的程序自动以管理员身份运行
在Vista或Win7或Win8或Win10系统上exe程序默认不是以管理员身份运行的,它会被UAC(用户帐户控制)阻止访问系统某些功能,如修改注册表操作、操作硬盘上的文件等。但是有时我们确实需要程序在开始运行时就是以管理员身份运行的,这时我们在VS中需进行以下操作:(1)在要编译的项目上右击选择【属性】然后选择【安全性】再勾选上【启用ClickOnce安全设置】,此时会在解决方案资源管理器...转载 2018-09-18 21:13:16 · 828 阅读 · 0 评论 -
利用C#实现条形图、饼图的绘制(二)
继前一篇文章提到关于使用C#绘制条形图的思路之后,这里接着介绍绘制饼图的思路。本篇文章所涉及的源代码是在前面的基础上完成的,在本文的最后,将会提供本实例的完整代码下载地址,有兴趣的朋友可以下载。 言归正传,开始介绍饼图的绘制。其实,饼图的绘制跟条形图的绘制有颇多相似之处,其大体亦经过以下几个步骤: (1)创建Graphics对象实例; (2)设置图形及文本属性; ...转载 2018-09-14 18:40:30 · 2625 阅读 · 1 评论 -
C#GDI+编程基础(一:Graphics画布类)
GDI+存在的意义:将变成与具体硬件实现细节分开。GDI+步骤:获取画布,绘制图像、处理图像命名空间:using System.Drawing;//提供对GDI+基本图形功能的访问using System.Drawing.Drawing2D;//提供高级的二维和矢量图像功能using System.Drawing.Imaging;//提供高级GDI+图像处理功能using ...转载 2018-09-14 20:03:14 · 922 阅读 · 0 评论 -
c# 远程关机 重启 注销 小练习
亲测小练习 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27...转载 2018-09-26 09:44:21 · 213 阅读 · 0 评论 -
InstallShield 2015 LimitedEdition VS2015打包 覆盖安装
“吾乐吧软件站”提供了很全面详细的InstallShield制作安装包教程(http://www.wuleba.com/23892.html),但是按上面的方法再次制作的升级安装包,安装后会在系统中同时存在两个版本的程序。要么就是提示”已安装了该产品的另一个版本“。后来找到了正确制作安装包的方法(http://stackoverflow.com/questions/12337860/update-...转载 2018-10-01 21:05:10 · 1449 阅读 · 1 评论 -
C#实现程序的版本升级更新
我们做了程序,不免会有版本升级,这就需要程序有自动版本升级的功能。那么看看我是如何实现程序自动更新的。直接上代码:using System; using System.Collections.Generic; using System.Text; using System.Reflection; using System.IO; using System<a...转载 2018-09-28 11:41:13 · 5220 阅读 · 0 评论 -
Installshield 2010 修改Setup.exe图标
这两天用Installshield 2010打包应用程序,想要修改生成的Installshield 2010图标,在网上查阅了不少文档,这里就总结一下,方便以后使用的人参考。首先,使用Installshield 2010创建项目大致可分为两种,InstallScript和InstallScript MSI。如果是InstallScript类型的项目,可以直接进入Installation Des...原创 2018-09-28 12:06:43 · 2550 阅读 · 1 评论 -
如何让应用程序在计算机开机后延迟启动?
通过Window计划任务可以设置应用程序开机后延时启动。 在程序列表中搜索“计划任务“。 打开计划任务,选择“创建基本任务“ 输入任务名称,点击“下一步“。 触发器选择“计算机启动时“,点击”下一步“ 选择“启动程序“,选择”下一步“ 选择应用程序的安装路径,点击“下一步“ 勾选“当单击完成时,打开此任务属性的对话框“,...转载 2018-09-28 21:56:40 · 13987 阅读 · 0 评论 -
C#实现无限层级树
namespace Test{ class Program { static void Main(string[] args) { //实现层级树的方法 var list = new List<Menu>() { new Menu () ...转载 2018-06-29 11:48:27 · 1441 阅读 · 0 评论