C# 专栏
文章平均质量分 57
xiehuan
I'am Xiehuan~!~!
展开
-
C# 序列化和反序列化
序列化的概念序列化是指一个对象的实例可以被保存,保存成一个二进制串,当然,一旦被保存成二进制串,那么也可以保存成文本串了。比如,一个计数器,数值为2,我们可以用字符串“2”表示。如果有个对象,叫做connter,当前值为2,那么可以序列化成“2”,反向的,也可以从“2”得到值为2的计数器实例。这样,关机时序列化它,开机时反序列化它,每次开机都是延续的。不会都是从头开始。序列转载 2011-11-27 12:22:46 · 2290 阅读 · 0 评论 -
C# 获取系统的特殊文件夹路径
win7下无法向c盘写入文件,当前用户只能向自己的用户文件夹写入文件,比如MyDocuments,文件夹,用c#得到这些文件夹的目录方法是:string path=System.Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments); Environment.SpecialFolder 枚举说明: Comm原创 2011-12-15 20:04:36 · 133 阅读 · 0 评论 -
C# Winform 应用程序中,获取某网页的源文件
在C# Winform 应用程序中,获取某网页的源文件,可以用以下方法:首先引入名称空间using System.IO;using System.Net;WebClient MyWebClient = new WebClient(); MyWebClient.Credentials = Credentia原创 2011-12-15 15:28:36 · 587 阅读 · 0 评论 -
部署 Windows 应用程序
部署 Windows 应用程序本演练演示为启动记事本的 Windows 应用程序创建一个安装程序的过程。在本演练中,您将首先创建一个 Windows 应用程序,然后创建一个安装程序;以便在安装过程中设置快捷方式和文件关联、添加注册表项、显示自定义对话框以及检查 Internet Explorer 的版本。注意 创建自己的安装程序时,不一定需要执行下面的所有步骤。本演练转载 2011-12-15 16:15:52 · 387 阅读 · 0 评论 -
C#获取系统的特殊文件夹路径
win7下无法向c盘写入文件,当前用户只能向自己的用户文件夹写入文件,比如MyDocuments,文件夹,用c#得到这些文件夹的目录方法是:string path=System.Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments); Environment.SpecialFolder 枚举说明: Commo原创 2011-12-15 20:05:12 · 558 阅读 · 0 评论 -
C# 内存管理、优化的方法
在C# winform应用程序中,用以下代码可以进行一些内存使用的优化using System;using System.Diagnostics;using System.Runtime.InteropServices;/// /// 包含各种内存管理、优化的方法/// public class Memory { private static rea转载 2011-12-25 20:30:36 · 1971 阅读 · 0 评论 -
给多线程传递参数的三种方式
从《C#高级编程》了解到给线程传递参数有两种方式,一种方式是使用带ParameterizedThreadStart委托参数的Thread构造函数,另一种方式是创建一个自定义类,把线程的方法定义为实例的方法,这样就可以初始化实例的数据,之后启动线程。方式一:使用ParameterizedThreadStart委托如果使用了ParameterizedThreadStart委托,线程的入转载 2012-02-22 12:26:05 · 597 阅读 · 0 评论 -
使用WebClient.UpLoadFile方法在C/S程序中上传文件
效果和代码如下:补充说明:虚拟目录为images,要为改虚拟目录设置写入权限,并且images这个存放图片的文件夹要有写入权限(对于主分区为NTFS格式),有时还要设置Web服务扩展(如下图:)关于更多WebClient文件上传,详细请了解:http://terrylee.cnblogs.com/archive/2006/03/27/360165.aspx转载 2012-03-23 16:37:49 · 13937 阅读 · 0 评论 -
.net中突破每客户端两个http连接的限制
在Http协议中,规定了同个Http请求的并发连接数最大为2. 这个数值,可谓是太小了。而目前的浏览器,已基本不再遵循这个限制,但是Dot Net平台上的 System.Net 还是默认遵循了这个标准的。从而造成了,在使用HttpWebRequset 或者 WebClient 利用多线程的方式,访问某个网站时,经常出现 连接被异常关闭的错误,大大降低了效率。这个限制的值,是转载 2012-03-30 10:29:59 · 1157 阅读 · 0 评论 -
C#程序只允许运行一个实例的解决方案
最近在做winform的程序中,需要只能打开一个程序,如果已经存在,则激活该程序的窗口,并显示在最前端。在网上google了一哈,找到了很多的解决方案。这里我整理了3种方案,并经过了测试,现和朋友们分享:一、使用用互斥量(System.Threading.Mutex) 同步基元,它只向一个线程授予对共享资源的独占访问权。在程序启动时候,请求一个互斥体,如果能获取对指定互斥的访问权,转载 2012-03-16 00:13:16 · 765 阅读 · 0 评论 -
C#彩色图像灰度化算法
public static Bitmap MakeGrayscale(Bitmap original) { //create a blank bitmap the same size as original Bitmap newBitmap = new Bitmap(original.Width, original.Height);转载 2012-04-16 15:00:42 · 526 阅读 · 0 评论 -
c# word文档中创建表格
public string CreateWordFile() { string message = ""; try { Object Nothing = System.Reflection.Missing.Value; string name =转载 2012-05-22 21:39:04 · 2105 阅读 · 0 评论 -
利用Aspose.Words,在word文档中创建表格
//Open document and create Documentbuilder Aspose.Words.Document doc = new Aspose.Words.Document("demo.doc"); DocumentBuilder builder = new DocumentBuilder(doc); //Set table formating //Set b原创 2012-05-23 13:42:34 · 4225 阅读 · 2 评论 -
C#截取电脑全屏和窗体屏幕
截取电脑全屏private void button2_Click(object sender, EventArgs e){ Bitmap myImage = new Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height); Graphics g = Graphics.F原创 2011-12-15 13:28:06 · 2223 阅读 · 0 评论 -
C#在任务管理器中应用程序选项中隐藏程序本身
在C# winform 应用程序中,经常用到这样一种应用:在窗体处于最小化时,隐藏该程序的任务栏图标,在托盘上显示该程序的图标,用以下代码可以实现:private void Form1_SizeChanged(object sender, EventArgs e){ if (this.WindowState == FormWindowState.Minimized) {原创 2011-12-12 22:07:33 · 1442 阅读 · 0 评论 -
C# 自定义鼠标样式(使用图片)
本文将向大家讲述如何使用系统自定义鼠标样式和使用图片鼠标样式。设置鼠标重要利用窗体一个属性 this.Cursor (当能当前代码在窗体类中)。1 :使用系统自带鼠标样式 this.Cursor = Cursors.Cross;当能Cursors当中有众多的鼠标样式如向四个方向的箭头,十字架等2 :使用图片作为鼠标样式,这个可是本文的关键了① 首先定义一个Bitmap对象,如:原创 2011-11-27 12:29:16 · 6080 阅读 · 2 评论 -
C# DataGridView控件 动态添加新行
DataGridView控件在实际应用中非常实用,特别需要表格显示数据时。可以静态绑定数据源,这样就自动为DataGridView控件添加相应的行。假如需要动态为DataGridView控件添加新行,方法有很多种,下面简单介绍如何为DataGridView控件动态添加新行的两种方法:方法一:int index=this.dataGridView1.Rows.Add();this原创 2011-11-27 12:26:00 · 14737 阅读 · 4 评论 -
深入探讨C#序列化和反序列化
深入探讨C#序列化和反序列化之前我们先要明白什么是序列化,它又称串行化,是.NET运行时环境用来支持用户定义类型的流化的机制。序列化就是把一个对象保存到一个文件或数据库字段中去,反序列化就是在适当的时候把这个文件再转化成原来的对象使用。其目的是以某种存储形成使自定义对象持久化,或者将这种对象从一个地方传输到另一个地方。.NET框架提供了两种串行化的方式:1、是使用BinaryFormatter进行转载 2011-11-27 12:53:23 · 700 阅读 · 0 评论 -
C#如何获取鼠标相对当前窗口的坐标
在我们编写客户端应用程序时,经常要用到鼠标当前的位置。在C#winform中,可以用Control.MousePosition获得当前鼠标的坐标,使用PointToClient计算鼠标相对于某个控件的坐标,如下Point screenPoint = Control.MousePosition;//鼠标相对于屏幕左上角的坐标Point formPoint = this.PointTo原创 2011-11-27 13:08:27 · 4892 阅读 · 2 评论 -
C#中处理和键盘相关的事件
在C#中和键盘相关的事件相对比较少,大致就三种:"KeyDown"、"KeyUp"和"KeyPress"。(1)如何在C#程序中定义这些事件 C#中描述"KeyDown"、"KeyUp"的事件的Delegate 是"KeyEventHandler",数据的类是"KeyEventArgs"。而描述"KeyPress"所用的 Delegate是"KeyPressEventHand原创 2011-11-27 13:29:39 · 5174 阅读 · 2 评论 -
C# winform 清除由GDI绘制出来的所有线条或图形
在C#winform应用程序中,可以用GDI绘制出线条或图形。1、在主窗体上绘制线条或图形 using (Graphics g = this.CreateGraphics()) { g.DrawLine(Pens.Blue, new Point(10, 10), new Point(100, 100)); }2、在指定原创 2011-11-28 17:45:06 · 8268 阅读 · 4 评论 -
C#代码实现在屏幕上画图的效果
以下这段C#代码实现的功能是在屏幕上画图的效果!具体代码如下://DllImport所在的名字空间 using System.Runtime.InteropServices;[DllImport("User32.dll")]public extern static System.IntPtr GetDC(System.IntPtr hWnd); private void bu转载 2011-12-02 12:32:24 · 731 阅读 · 0 评论 -
C#实现快捷键(系统热键)响应
在应用中,我们可能会需要实现像Ctrl+C复制、Ctrl+V粘贴这样的快捷键,本文简单介绍了它的实现,并给出了一个实现类。 (1)建立一个类文件,命名为HotKey.cs,代码如下:using System;using System.Collections.Generic;using System.Runtime.InteropServices;using System.Wi转载 2011-12-06 14:32:46 · 466 阅读 · 0 评论 -
C# 截取当前程序窗口指定位置的截图
要想完成这个功用,首先要了解一下在C#中如何调用API(利用程序交口)函数。固然在.Net框架中已经降求了很多类库,400电话,这些类库的功效也非常强盛,但关于一些Windows顶层编程来道,仍是要通过调用这些API函数才可以实现。一切API皆在"Kernel"、"User "和"GDI"三个库中得以运转:其中"Kernel",他的库名为 "KERNEL32.DLL", 他重要用于发生取操做体转载 2011-12-16 22:02:00 · 964 阅读 · 0 评论 -
在 .NET 中创建快捷方式 [C#]
创建快捷方式对于绝大多数 Windows 用户来说都是小菜一碟了,然而,这项工作却为程序员带来不少麻烦。.NET 没有提供简便直接的创建快捷方式的方法,那么在 .NET 中我们如何为应用程序创建快捷方式呢? 1. 快捷方式文件快捷方式实质上是一个扩展名为 .LNK 的文件。右击一个快捷方式文件并选择属性,跳到快捷方式选项卡,如图2所示:你可以看到一个快捷转载 2011-12-18 23:04:53 · 702 阅读 · 0 评论 -
C#判断操作系统类型总结
Windows操作系统的版本号一览 操作系统 PlatformID 主版本号 副版本号 Windows95 1 4 0 Windows98 1 4 10 WindowsMe 1 4 90 WindowsNT3.5 2 3 0 WindowsNT4.0转载 2011-12-19 22:57:41 · 3127 阅读 · 0 评论 -
C#键盘勾子(Hook)拦截器,屏蔽键盘活动
钩子(Hook),是Windows消息处理机制的一个平台,应用程序可以在上面设置子程以监视指定窗口的某种消息,而且所监视的窗口可以是其他进程所创建的。当消息到达后,在目标窗口处理函数之前处理它。钩子机制允许应用程序截获处理window消息或特定事件。 钩子实际上是一个处理消息的程序段,通过系统调用,把它挂入系统。每当特定的消息发出,在没有到达目的窗口前,钩子程序就先捕获该消息,亦即钩子函数先得转载 2011-12-12 21:54:44 · 939 阅读 · 0 评论 -
C# WinForm控件之Dock顺序调整
最近被.net winform中的控件布局搞困惑了,由于控件都是使用Dock方式的,操作起来也是比较方便,如果最大化,窗口大小调整等,都可以随着窗口大小的变化而变化。但问题是,.net winform的dock方式是根据先添加的控件顺序进行优先级Dock排列的,假设我想目前有三个控件A、B、C分别以 Top、Bottom以及Fill方式填充窗口即窗口看起来应该是这样的:------转载 2012-08-05 14:32:49 · 10257 阅读 · 7 评论