
C# .net
数据轨迹
这个作者很懒,什么都没留下…
展开
-
win7中无法安装.net4.6.2版本
win7中无法安装.net4.6.2,因为.net4.6.2版本最低系统版本是win7的sp1版本。如果不是win7的sp1版本,需要进行升级。最可能的原因是win7没有安装 Windows 7 Service Pack 1 (SP1)以下是安装教程和程序包下载地址官方教程:安装 Windows 7 Service Pack 1 (SP1)https://support.microsoft.com/zh-cn/windows/%E5%AE%89%E8%A3%85-windows-7-se原创 2021-06-24 12:22:22 · 5229 阅读 · 0 评论 -
.net 不同版本对于系统的要求
官方网站:https://docs.microsoft.com/zh-cn/dotnet/framework/get-started/system-requirements简单说明:原创 2021-06-24 12:19:24 · 365 阅读 · 0 评论 -
C# 中dllimport 调用不同文件夹终极方法
在使用dllimport可以指定非根目录的dll,但是dll中的依赖其他dll,会存在问题。1、先导入设置dll目录的方法[DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)]public static extern bool SetDllDirectory(string lpPathName);2、然后通过SetDllDirectory指定非根目录SetDllDirectory("不同的文件夹")原创 2021-04-28 16:26:26 · 1240 阅读 · 0 评论 -
C# 线程管理(二):超时定时任务创建
public static void InvokeTimeOut(Action method, int milliseconds) { Thread thdToKill = null; Action invokemethod = new Action(() => { thdToKill = Thread.CurrentThread; method(.原创 2020-08-21 17:07:56 · 323 阅读 · 0 评论 -
C# 线程管理(一):多线程创建方式
首先介绍三种多线程创建方法:// 不带参数public void process(){ Thread.Sleep(1000000);}// 带参数public void processP(){ Thread.Sleep(10000);}(1):Thread 创建线程// 不带参数Thread th = new Thread(process);th.IsBackground = true; // 后台启动后,主程序关闭一起关闭。前台程序,主程序关闭仍然执原创 2020-08-21 16:55:33 · 1014 阅读 · 0 评论 -
C# 中字符格式化多个括号报错
string s = "{0}}"string ss = string.Format(s,1)上面情况运行会出现崩溃修改方式:将}单独拿出来string s = "{0}"string ss = string.Format(s,1)s = s + "}"原创 2020-07-03 11:32:17 · 329 阅读 · 0 评论 -
C# 常用的正则式
1、获取指定两个字符中间的字符public static string MidStrEx_New(string sourse, string startstr, string endstr) { Regex rg = new Regex("(?<=(" + startstr + "))[.\\s\\S]*?(?=(" + endstr + "))...原创 2020-02-23 18:31:19 · 260 阅读 · 0 评论 -
C# 中byte数组转成字符出现问号解决方法
问题描述 在C#中使用Encoding将字节数组变成字符的时候,会将特殊字符(控制字符)全部变成问号。会出现一个现象,将文件读取到字节后,用Encoding变成字符后,在变成字节流。此时的字节流和刚开始的字节流是不同的。代码如下byte[] bytes=new byte[]{137, 80, 78, 71, 13, 10, 26, 10, 0,...原创 2019-10-12 18:51:49 · 2026 阅读 · 0 评论 -
C# ListView总是有一个被选中
int nLast = -1; int nCur = -1; private void listView1_ItemSelectionChanged(object sender, ListViewItemSelectionChangedEventArgs e) { // 保留当期那被选择的状态原创 2017-04-10 13:00:06 · 1612 阅读 · 0 评论 -
.NET2.0程序集无法在.net 4.0 中运行的解决方案
如有雷同,不胜荣欣,若转载,请注明最近在项目上一直使用.net4.0 framework,突然发现一个AForge.net中使用ffmepeg下的一个dll时,提示只能在2.0下运行,在众多MSDN和资料的帮助下终于又提高 了一点,今特地记录一下,一边日后遗忘,解决方法如下:就是在app.config中添加一个配置节:startup转载 2016-02-24 12:25:54 · 1202 阅读 · 0 评论 -
c# -- 对象销毁和垃圾回收
有些对象需要显示地销毁代码来释放资源,比如打开的文件资源,锁,操作系统句柄和非托管对象。在.NET中,这就是所谓的对象销毁,它通过IDisposal接口来实现。不再使用的对象所占用的内存管理,必须在某个时候回收;这个被称为无用单元收集的功能由CLR执行。对象销毁和垃圾回收的区别在于:对象销毁通常是明确的策动;而垃圾回收完全是自动地。换句话说,程序员负责释放文件句柄,锁,以及操作系统资源;而转载 2015-05-08 12:36:54 · 1356 阅读 · 0 评论 -
一个C#接收服务器框架
http://www.cnblogs.com/WCFGROUP/archive/2009/05/22/1304512.html C# 实现的多线程异步Socket数据包接收器框架几天前在博问中看到一个C# Socket问题,就想到笔者2004年做的一个省级交通流量接收服务器项目,当时的基本求如下:o 接收自动观测设转载 2015-04-16 18:47:36 · 1299 阅读 · 0 评论 -
如何用C#编写文本编辑器
摘要 本文探讨了使用C#从底层开发一个带格式的文本编辑器的任务,深入探讨了其中的文档对象模型的设计,图形化用户界面的处理和用户操作的响应,说明了其中的某些技术问题和解决之道。前言 小弟从大学里开始接触编程也有6年了,工作4年也是干编程的活,见过不少程序,自己也编过不少,在学校编程自己觉得是搞艺术品,其实玩一些游戏,比如文明法老王星际等从某些角度看也是搞艺术品,看着转载 2015-04-16 16:17:20 · 9215 阅读 · 3 评论 -
C#程序以管理员权限运行
在Vista 和 Windows 7 及更新版本的操作系统,增加了 UAC(用户账户控制) 的安全机制,如果 UAC 被打开,用户即使以管理员权限登录,其应用程序默认情况下也无法对系统目录、系统注册表等可能影响系统正常运行的设置进行写操作。这个机制大大增强了系统的安全性,但对应用程序开发者来说,我们不能强迫用户去关闭UAC,但有时我们开发的应用程序又需要以 Administrator 的方式运转载 2015-04-16 15:02:52 · 669 阅读 · 0 评论 -
winform中textbox提示框
在winform中向textbox输入内容时下面有提示信息,效果如图所示:private void Form1_Load(object sender, EventArgs e){ AutoCompleteStringCollection strings = new AutoCompleteStringCollection(); strings.Add(转载 2015-04-01 16:45:22 · 1410 阅读 · 0 评论 -
C#中如何判断键盘按键和组合键
好记性不如烂笔头子,我之前对这句话很不以为然,现在好多东西一段时间不用不接触就忘记了,所以,现在记录下来,不一定会有很详尽的实例,只写最核心的部分。C# winform的窗体类有KeyPreview属性,可以接收窗体内控件的键盘事件注册。窗体和控件都有KeyDown,KeyUp,KeyPress三个事件,每个事件都会有KeyEventArgs参数传入,只要判断传入参数的KeyChar就转载 2015-04-01 15:18:58 · 2862 阅读 · 0 评论 -
C#中使用事件只启动一个实例
现有一个程序,只能启动一个实例:启动时,如果检测到实例已启动,则激活并显示到最前端;否则启动一个新的实例:为此可以通过事件实现。// 判断是否已启动 bool IsFormExists(Form frmOwner_, string strEvent_) { EventWaitHandle eHandle; tr转载 2014-09-28 09:34:05 · 1105 阅读 · 0 评论 -
双击鼠标触发了Ctrl+C事件
原因可能是:1、代码中有类似的代码控制2、有道词典等软件中的划译功能,估计每双击一下,词典就会触发一次复制操作(crtl+c)。会先截获当前的双击事件,然后触发一个Ctrl +C事件原创 2015-04-02 10:32:20 · 5121 阅读 · 4 评论 -
C# 中对话接受按键消息
C# 中的对话框Form一般是不能接受按键消息的1、需要将KeyPreview 设置为true.2、但是有些按键如上下键还是没有的,这时候需要重写ProcessDialogKey protected override bool ProcessDialogKey(Keys keyData) { switch (keyData原创 2015-01-03 17:34:43 · 578 阅读 · 0 评论 -
C# 中捕获C/C++异常的方法
前几天,有一个朋友问我为什么在.NET里不能捕捉(catch)到一些异常了,而且在调试器里也捕捉不到。研究了一下,是.NET 4.0里新的异常处理机制捣的鬼。 在.NET 4.0之后,CLR将会区别出一些异常(都是SEH异常),将这些异常标识为破坏性异常(Corrupted State Exception)。针对这些异常,CLR的catch块不会捕捉这些异常,即使你用类似下面的代码:转载 2017-04-11 17:59:23 · 4933 阅读 · 1 评论 -
C# 中当前路径的改变
System.Diagnostics.Process.GetCurrentProcess() 当前进程用到的路径原创 2017-05-13 11:33:40 · 643 阅读 · 0 评论 -
C#调用C++的DLL搜集整理的所有数据类型转换方式
//C++中的DLL函数原型为 //extern "C" __declspec(dllexport) bool 方法名一(const char* 变量名1, unsigned char* 变量名2) //extern "C" __declspec(dllexport) bool 方法名二(const unsigned char* 变量名1, char* 变量名2转载 2014-09-26 10:09:14 · 383 阅读 · 0 评论 -
linq(2):对字符串数字的排序
cq_items= cq_items.OrderBy(x => x.server_id.Length).ThenBy(x=>x.server_id).ToList();原创 2019-08-23 17:17:13 · 1527 阅读 · 1 评论 -
C#中手机号码中间四位变成星号
Regex.Replace(x.username, "(\\d{3})\\d{5}(\\d{3})", "$1*****$2")原创 2019-07-08 16:17:05 · 3793 阅读 · 2 评论 -
Razor 中小数五位后自动采用科学计数法的解决方案
在asp mvc中如果数值为小数达到五位时,会自动变成科学计数法。例如:<div>@item.value</div>如果value是0.00001,则显示变成1E-5。解决方案:<div>@String.Format("{0:0.#####}", @item.value)</div>此时会变成0.00001....原创 2019-06-10 14:07:44 · 402 阅读 · 0 评论 -
linq(1)常见查询(linq表达式)
本文主要讲解的是linq的查询用法。采用的数据//定义数组man var man = new[] { new{name="忘清水",age="25",sex="男",num=14}, new{name="不了解",age="19",sex="女",num=25}, ...原创 2019-06-03 11:02:44 · 424 阅读 · 0 评论 -
C# 中express中的嵌套
Expression<Func<User,bool>>exp1=a=>a.UserName=="test"&&a.Password=="123456";Expression<Func<UserGroup,bool>>exp2=a=>a.GroupName.StartsWith("Gro...原创 2019-05-22 18:30:19 · 528 阅读 · 0 评论 -
WPF控件获得焦点时去除虚线框
<Setter Property="FocusVisualStyle" Value="{x:Null}" />转载 2018-09-21 17:10:22 · 862 阅读 · 0 评论 -
EventWaitHandle,AutoResetEvent和ManualResetEvent的区别
简单的说三个的关系是,AutoResetEvent和ManualResetEvent是EventWaitHandle的子类。从EventWaitHandle可以创建两者。m_WaitHandle = new EventWaitHandle(false, EventResetMode.AutoReset); // 类似AutoResetEventm_WaitHandle = new Eve...原创 2018-09-25 17:59:32 · 1496 阅读 · 0 评论 -
EventWaitHandle的WaitOne和Sleep的区别
首先看一下一个例子:AutoResetEvent auto = new AutoResetEvent(false);private void button2_Click(object sender, EventArgs e){ this.label1.Text = "点击了btn2"; //Thread.Sleep(2000); auto.WaitOne(2...原创 2018-09-25 17:51:34 · 5837 阅读 · 0 评论 -
TreeView中加粗后,显示不全的终结解决方案
Font boldFont = new Font(treeview.Font, FontStyle.Bold);node.NodeFont = boldFont;node.Text = node.Text; // 重点在此句,会将文字重新绘制一次,从而不全了没显示的文字...原创 2018-04-16 19:13:49 · 2032 阅读 · 0 评论 -
C#中的各种流
//Stream是一个抽象类,不能直接实例化 //FileStream继承于Stream ,读写文件流 //StreamWriter继承于TextWriter(抽象类,继承于MarshalByRefObject, IDisposable),可以操作Stream //StreamReader继承于TextReader(抽象类,继承转载 2015-01-21 10:18:21 · 538 阅读 · 0 评论 -
关于HttpUtility.UrlEncode,HttpUtility.UrlDecode,Server.UrlEncode,Server.UrlDecode
HttpUtility.UrlEncode 方法:对 URL 字符串进行编码,以便实现从 Web 服务器到客户端的可靠的 HTTP 传输。重载列表将字节数组转换为已编码的 URL 字符串,以便实现从 Web 服务器到客户端的可靠的 HTTP 传输。[C#] public static string UrlEncode(byte[]);对 URL 字符串进行编码,以便转载 2015-01-21 10:17:30 · 2158 阅读 · 0 评论 -
C#多线程学习(五) 多线程的自动管理(定时器)
Timer类:设置一个定时器,定时执行用户指定的函数。定时器启动后,系统将自动建立一个新的线程,执行用户指定的函数。初始化一个Timer对象:Timer timer = new Timer(timerDelegate, s,1000, 1000);// 第一个参数:指定了TimerCallback 委托,表示要执行的方法;// 第二个参数:一个包含回调方法要转载 2014-09-28 10:48:42 · 485 阅读 · 0 评论 -
C#操作注册表
用.NET下托管语言C#操作注册表,主要内容包括:注册表项的创建,打开与删除、键值的创建(设置值、修改),读取和删除、判断注册表项是否存在、判断键值是否存在。 准备工作: 1:要操作注册表,我们必须要引入必要的命名空间:using Microsoft.Win32; [c#] view plaincopy转载 2014-09-28 09:29:39 · 538 阅读 · 0 评论 -
C#下改变窗体大小
在C#下要改变窗体的大小,只需要添加一个statusstrip,然后把sizinggrip改为true,这样鼠标在窗体右下角时就会出现一个大小调整手柄,就可以调整大小。 窗体大小可以调整了,但是控件不会跟着一起调整,需要为窗体添加一个Resize事件,然后在事件中调整控件的大小。下面就以一个名称为ListFiles的listview控件为例进行说明: this.ListFile转载 2014-09-28 09:28:06 · 1910 阅读 · 0 评论 -
C#多线程的生产者和消费者
前面说过,每个线程都有自己的资源,但是代码区是共享的,即每个线程都可以执行相同的函数。这可能带来的问题就是几个线程同时执行一个函数,导致数据的混乱,产生不可预料的结果,因此我们必须避免这种情况的发生。C#提供了一个关键字lock,它可以把一段代码定义为互斥段(critical section),互斥段在一个时刻内只允许一个线程进入执行,而其他线程必须等待。在C#中,关键字lock定义如下:转载 2014-09-28 10:45:38 · 671 阅读 · 0 评论 -
C#的多线程机制探索
一. 多线程的概念 Windows 是一个多任务的系统,如果你使用的是windows 2000 及其以上版本,你可以通过任务管理器查看当前系统运行的程序和进程。什么是进程呢?当一个程序开始运行时,它就是一个进程,进程所指包括运行中的 程序和程序所使用到的内存和系统资源。而一个进程又是由多个线程所组成的,线程是程序中的一个执行流,每个线程都有自己的专有寄存器( 栈指针、程序计数器 等) ,转载 2014-09-28 09:32:39 · 387 阅读 · 0 评论 -
C#多线程学习(六) 互斥对象
如何控制好多个线程相互之间的联系,不产生冲突和重复,这需要用到互斥对象,即:System.Threading 命名空间中的 Mutex 类。我们可以把Mutex看作一个出租车,乘客看作线程。乘客首先等车,然后上车,最后下车。当一个乘客在车上时,其他乘客就只有等他下车以后才可以上车。而线程与Mutex对象的关系也正是如此,线程使用Mutex.WaitOne()方法等待Mutex对象被释放,如转载 2014-09-28 10:49:45 · 461 阅读 · 0 评论 -
C#多线程学习(四) 多线程的自动管理(线程池)
在多线程的程序中,经常会出现两种情况:一种情况: 应用程序中,线程把大部分的时间花费在等待状态,等待某个事件发生,然后才能给予响应这一般使用ThreadPool(线程池)来解决;另一种情况:线程平时都处于休眠状态,只是周期性地被唤醒这一般使用Timer(定时器)来解决;ThreadPool类提供一个由系统维护的线程池(可以看作一个线程的容器),该容器需要 W转载 2014-09-28 10:47:52 · 355 阅读 · 0 评论