- 博客(51)
- 资源 (57)
- 收藏
- 关注
转载 浅析C#异步操作
这里介绍开始C#异步操作后如果要阻止应用程序,可以直接调用 End 方法,这会阻止应用程序直到异步操作完成后再继续执行。.NET Framework 为异步操作提供了两种设计模式:使用 IAsyncResult 对象的异步操作与使用事件的异步操作。先来学习前者概述IAsyncResult 异步设计模式通过名为 BeginOperationName 和 EndOperationNam
2011-11-30 11:11:48 681
原创 C#中给RichTextBox加上背景图片
在系统自带的RichTextBox中是无法给它设置背景图片,但是我们在某些场合可能需要给RichTextBox设置背景图片。那么怎么实现这一想法呢?经过研究发现通过其它巧妙的途径可以给RichTextBox设置背景图片。首先将RichTextBox这个控件加以改写。具体改写的代码如下: public partial class richTextBoxEx : RichTextBox
2011-11-29 22:12:18 5378 1
转载 一个实例明白AutoResetEvent和 ManulResetEvent的用法
先看一段代码:public class WaitHandlerExample { public static AutoResetEvent waitHandler; public static ManualResetEvent manualWaitHandler; public sta
2011-11-29 16:32:51 886
转载 Tcp/IP 端口耗尽
原文链接:http://msdn.microsoft.com/zh-cn/library/aa560610(v=bts.10).aspx本文内容:1.查看端口使用状况的方法;2、端口耗尽所带来的问题;3、解决办法当客户端启动到服务器的 TCP/IP 套接字连接时,客户端通常连接到服务器上的特定端口,并请求服务器通过临时(或暂时)TCP 或 UDP 端口进行响应。在 Windows Serv
2011-11-29 14:48:41 1387
原创 C#防止在画面上闪烁的Button
当在winform中放置很多Button控件,并且画面还有背景,每个Button都还有背景的时候,显示画面时就会产生闪烁的效果,如果机器性能好的话,画面会比较快的加载完,闪烁的情况不会很明显,但是如果机器性能不佳的话,则会给用户很差的体验。即使画面和Button采用了双缓存,效果也不明显。因此需要对C#中的Button加以重载并重写部分代码。就可以避免这种情况发生了。废话不多说了,代码如下:
2011-11-29 14:37:15 1398
转载 C# API 如何保证使用托管对象的平台调用成功
三、如何保证使用托管对象的平台调用成功?如果在调用平台 invoke 后的任何位置都未引用托管对象,则垃圾回收器可能将完成该托管对象。这将释放资源并使句柄无效,从而导致平台invoke 调用失败。用 HandleRef 包装句柄可保证在平台 invoke 调用完成前,不对托管对象进行垃圾回收。例如下面:FileStream fs = new FileStream( "a.txt", F
2011-11-21 11:59:37 797
转载 C# API 调用格式和参数类型
一、调用格式using System.Runtime.InteropServices; //引用此名称空间,简化后面的代码//使用DllImportAttribute特性来引入api函数,注意声明的是空方法,即方法体为空。[DllImport("user32.dll")]public static extern ReturnType FunctionName(type arg1,t
2011-11-21 11:25:38 698
原创 C#中判断系统的网络连接状态的方法
在C#中可以使用多种方法来判断网络的连接状态,比如使用WIN32的API来判断,也可以直接Ping某个网址来判断。下面来介绍下我最进行写的一个判断网络连接的方法类,使用了Wine32的API函数与Ping.Send结合的方法,代码如下:using System;using System.Collections.Generic;using System.Text;using Sy
2011-11-18 12:14:25 1076
原创 SQL Server2005创建新数据库时不允许创建新数据库的问题
今天早上来公司后,突然发现SQL Server2005出了问题,在管理器中居然不能创建新数据库了,使用SQL语句创建也不行,昨天还好好的,还弹出了如下对话框:使用SQL语句创建SQL Server则显示如下错误:不允许创建新数据库消息 3609,级别 16,状态 2,第 2 行事务在触发器中结束。批处理已中止。在百度,Google了很久后没有找到解决方案,不得已将SQL
2011-11-11 13:48:35 856
原创 Asp.net MVC3学习案例
推荐给学习Asp.net MVC3的入门者2个不错的入门案例ASP.NET MVC3实例项目Music Store分析系列http://www.cnntec.com/showtopic-2481.htmlAsp.net MVC 3实例学习之ExtShop系列Asp.net MVC 3实例学习之ExtShop(一)————创建应用并
2011-11-10 16:06:13 2081
转载 想要成功,请记住!
文章写的太经典了,有必要让更多的人了解,也为让自己谨记,转了。 一双鞋,耐克的6百多;李宁的4百多;特步的3百多;361的2百多;所以,你毕业于一个什么样的大学很重要。 一双鞋,在地摊不过几十元,到了商场、专卖店,会涨到一百甚至几百。所以,你呆在什么地方很重要。 一双鞋,只有合脚并且合意了才能卖出去。所以,沟通了解很重要。 一双鞋,少了一只,是不值钱
2011-11-10 14:41:17 562
转载 如何在C#中使用Win32和其他库之三
具有内嵌字符数组的结构某些函数接受具有内嵌字符数组的结构。例如,GetTimeZoneInformation() 函数接受指向以下结构的指针:typedef struct _TIME_ZONE_INFORMATION { LONG Bias; WCHAR StandardName[ 32 ]; SYSTEMTIME StandardDate;
2011-11-09 18:00:02 646
转载 如何在C#中使用Win32和其他库之二
简单字符串下面是一个接受字符串参数的函数的简单示例:BOOL GetDiskFreeSpace( LPCTSTR lpRootPathName, // 根路径 LPDWORD lpSectorsPerCluster, // 每个簇的扇区数 LPDWORD lpBytesPerSector, // 每个扇区的字节数 LPDWORD lpNumb
2011-11-09 17:58:57 575
转载 如何在C#中使用 Win32和其他库
如何在C#中使用 Win32和其他库 这一次我们将深入探讨如何在 C# 中使用 Win32 和其他现有库。 C# 用户经常提出两个问题:“我为什么要另外编写代码来使用内置于 Windows 中的功能?在框架中为什么没有相应的内容可以为我完成这一任务?”当框架小组构建他们的 .NET 部分时,他们评估了为使 .NET 程序员可以使用 Win32 而需要完成的工作,
2011-11-09 17:57:38 543
转载 在本机通过SQL远程操作数据库
/*在本机通过SQL远程操作数据库@@@@@@@@@@@@@@@@@@@@@@@@@@*/declare @ServerName sysname declare @UserName sysname declare @Password sysname --初始化连接信息 set @ServerN
2011-11-09 15:22:21 690
原创 关于Socket通讯时通讯协议的制定
在系统开发过程中,如果涉及到了Socket通讯,那就要制定好通讯的协议,只有制定好了规则,后面的工作才方便顺利展开,制作通讯协议时要考虑到通讯的安全性,必要的信息要经过加密处理,同时也要考虑到系统的可扩展性,如果以后需要增加一个命令或者修改命令要保证这些工作能方便的进行。 协议的内容包括如下:一、 系统默认约定1. 本协议使用的字符串,如密码,位数为6位。
2011-11-07 09:07:43 1362
转载 C# 实现屏幕键盘 (ScreenKeyboard)
要实现一个屏幕键盘,需要监听所有键盘事件,无论窗体是否被激活。因此需要一个全局的钩子,也就是系统范围的钩子。什么是钩子(Hook) 钩子(Hook)是Windows提供的一种消息处理机制平台,是指在程序正常运行中接受信息之前预先 启动的函数,用来检查和修改传给该程序的信息,(钩子)实际上是一个处理消息的程序段,通 过系统调用,把它挂入系统。每当特定的消息发出,
2011-11-06 20:06:50 1230
原创 利用Windows API获得系统高级功能
利用Windows API获得系统高级功能 邹刚 VB无疑是最先进的编程工具之一,但在涉及windows 32位系统的核心编程方面——譬如一些高级功能的实现上,它仍然显得有些力不从心,这需要我们充分利用vb的强大的Windows API函数调用能力来弥补。以下代码将向您展示如何利用Windows API控制系统托盘(图标)区、开始菜单、任务栏以及禁用/起用ctrl-alt-
2011-11-06 20:03:23 742
转载 Windows API 技巧集
一)不规则窗口 Windows提供的只是标准的矩形窗口,要想建立一个不规则的窗口就需要调用API函数来实现。建立一个不规则的窗口,一般是先用创建区域的API函数建立一个不规则的区域,再用API函数SetWindowRgn改变窗口的区域。这些API函数在C++ Builder中包含在头文件wingdi.h和winuser.h里面,因此,要使用这些API函数就要先在程序头部加上包含头文件
2011-11-06 19:59:17 880
转载 关于句柄的一些知识
句柄的本质 一、书上定义: >(Microsoft Press,by Richard Wilton) 在Windows环境中,句柄是用来标识项目的,这些项目包括:模块(module)、任务(task)、实例 (instance)、文件(file)、内存块(block of memory)、菜单(menu)、控制(contr
2011-11-06 19:53:12 593
原创 图片管理类ImgCmdUtils
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Drawing;using System.Drawing.Imaging;using System.Drawing.Drawing2D;using System.IO;using
2011-11-05 12:45:50 663
原创 构造获取分页操作SQL语句
构造获取分页操作SQL语句 /// /// 获取分页操作SQL语句(对于排序的字段必须建立索引,优化分页提取方式) /// /// 操作表名称 /// 排序的索引字段 /// 当前页 /// 每页显示记录数 /// 总记录数 //
2011-11-05 12:41:05 683
原创 C#中文件操作类FileUtil
public class FileUtil { /// /// 换行符 /// public static string NewLine = "\r\n"; #region 检测指定目录是否存在 /// /// 检测指定目录是否存在 /
2011-11-05 12:34:41 2415 1
原创 关于Control的Invoke方法的使用
关于Invoke方法的解释,我们首先看看MSDN中详细解释,Control.Invoke Method (Delegate)Executes the specified delegate on the thread that owns the control's underlying window handle.翻译:在属于这个控件的窗体的句柄的线程下执行这个指定的代理。英文水平有
2011-11-05 11:47:17 934
原创 DES加密/解密类
/// /// DES加密/解密类。 /// public class DESEncrypt { public DESEncrypt() { } #region ========加密======== /// /
2011-11-05 10:36:29 511
转载 C# API
C:/ProgramFiles/MicrosoftVisual Studio .NET/ FrameworkSDK/Samples/ Technologies/ Interop/PlatformInvoke/ WinAPIs/CS目录下有大量的调用API的例子。一、调用格式using System.Runtime.InteropServices; //引用此名称空间,简化后面的代码//
2011-11-04 18:04:11 947
转载 Invoke and BeginInvoke
在Invoke或者BeginInvoke的使用中无一例外地使用了委托Delegate。 一、为什么Control类提供了Invoke和BeginInvoke机制?关于这个问题的最主要的原因已经是dotnet程序员众所周知的,我在此费点笔墨再次记录到自己的日志,以便日后提醒一下自己。1、windows程序消息机制Windows GUI程序是基于消息机制的,有个主线程维护着一
2011-11-04 17:18:04 574
转载 C#文件路径操作总结
一、获取当前文件的路径1. System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName 获取模块的完整路径,包括文件名。2. System.Environment.CurrentDirectory 获取和设置当前目录(该进程从中启动的目录)的完全限定目录。3. System.I
2011-11-04 17:01:19 546
转载 C#判断常见类型格式是否正确的类
//C#判断常见类型格式是否正确的类 public class GF_IsOk { /// /// 判读是否是IP地址 /// /// /// public static bool IsIPStr(string in_str) {
2011-11-04 16:45:12 1296
转载 C#中各种数据类型转换的方法的类
//各种数据类型转换方法的类 public class GF_Convert { /// /// 字符串 转换 char数组 /// /// /// /// public static char[] string2chararray(strin
2011-11-04 16:38:56 956
转载 C#对系统注册表操作的类
using System;using System.Collections.Generic;using System.Text;using Microsoft.Win32; //对注册表操作using System.Collections; //使用Arraylistusing System.Security.Cryptography;//加密解密using System.
2011-11-04 16:16:15 625
转载 VB.Net C#代码转换工具
最常用C#转换为VB.NEThttp://www.developerfusion.co.uk/utilities/convertcsharptovb.aspxVB.NET转换为C#http://www.developerfusion.com/utilities/convertvbtocsharp.aspx1http://www.kamalpatel.net/(最常用
2011-11-04 16:03:00 7092
转载 Socket基础知识分享
Socket Programming Considerations写Socket程序的时候需要注意设置下面的timeout,避免对方没有响应的时候,导致Socket程序挂起或等待时间过长 1.1 Accept TimeoutAccept timeout 仅对ServerSocket有用。ServerSocket 使用accept()方法来监听客户端Socket的连
2011-11-04 13:58:34 1473
原创 System.Timers.Timer与System.Windows.Forms.Timer 区别
根据msdn解释:System.Threading.Timer 是一个简单的轻量计时器,它使用回调方法并由线程池线程提供服务。不建议将其用于 Windows 窗体,因为其回调不在用户界面线程上进行。System.Windows.Forms.Timer 是用于 Windows 窗体的更佳选择。Windows 窗体 Timer 组件是单线程组件,精度限定为 55 毫秒。如果您需要更高精
2011-11-04 12:08:59 1038
转载 怎样才能充分利用SQL索引
怎样才能充分利用SQL索引 背景:目前WEB的普及太快,很多网站都会因为大流量的数据而发生服务器习惯性死机,一个查询语句只能适用于一定的网络环境.没有优化的查询当遇上大数据量时就不适用了. 本文主旨:讨论什么情况下能利用上索引. 索引:创建索引可以根据查询业务的不同分为两种:单一列的索引,联合索引. 顾名思义,单一列索引就是指在表的某一列上创建索引,联合索引是
2011-11-04 09:24:17 436
转载 DataGridView在vb.net中的操作技巧
目录:1、 取得或者修改当前单元格的内容2、 设定单元格只读3、 不显示最下面的新行4、 判断新增行5、 行的用户删除操作的自定义6、 行、列的隐藏和删除7、 禁止列或者行的Resize8、 列宽和行高以及列头的高度和行头的宽度的自动调整9、 冻结列或行10、 列顺序的调整11、 行头列头的单元格12、 剪切板的操作13、 单元格的ToolTip
2011-11-04 08:53:35 833
转载 0、(空字串)、Null、Empty、与Nothing的区别
Dim ADim B As StringDim C As IntegerDim D As ObjectA 等于 Empty, 因为尚未初始化的「不定型变量」都等于 Empty。但如果检测 A = "" 或 A = 0, 也都可以得到 True 值。B 等于 "", 因为尚未初始化的非固定长度「字串」都等于 "" 。 但请注意 BC 等于 0, 这个还有问题吗?D
2011-11-04 08:51:25 577
原创 通过建立Socket连接来快速判断数据库连接是否正确
在项目中经常会遇到要判断数据库连接是否成功的情况。如果写个查询语句去判断,则数据库连接出错的时候会花费很长的时间才能返回错误信息。因此建议先使用Socket去连接数据库服务器的IP及其上的数据库端口。默认情况下数据库服务器的端口为1433.判断数据库连接的代码如下: /// /// 测试数据库连接是否成功 /// ///
2011-11-03 17:51:13 2138
转载 纯C#钩子实现及应用
关于钩子请参见微软中国社区中《HOOK专题》一文。纯C#钩子(Hook)实现要实现系统钩子其实很简单,调用三个Win32的API即可。SetWindowsHookEx 用于设置钩子。(设立一道卡子,盘查需要的信息) [DllImport( "user32.dll", CallingConvention = CallingConvention.StdCa
2011-11-03 10:06:56 786
原创 系统升级程序的介绍
开发系统时,很多时候都要开发系统升级程序。升级程序的方式大多相同。目前我开发一个升级程序是这样的。启动主程序的同时启动升级程序,通过升级程序获取服务器上版本配置文件,判断当前的系统版本是否最新的版本。若是最新版本,则升级程序关闭。否则弹出提示有新版本需要下载,然后远程服务器上下载新版本,下载后提示关闭正在运行的主程序,使用新版本覆盖旧版本程序,并将配置文件中的版本号更新为最新程序的版本号。
2011-11-03 09:55:27 1258
针对windows系统的X64和X86平台的System.Data.SQLite.dll
2015-04-25
带CheckBox列头有全选择功能的DataGridView(二)
2012-09-14
带CheckBox列头有全选择功能的DataGridView
2012-07-23
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人