
C#.net/winform
文章平均质量分 68
powerboy
计算机学士,软件工程硕士(在读),国家信息系统项目管理师,四级数据库工程师,目前致力于研究大型网站的系统架构!
展开
-
使用设计模式构建通用数据库访问类
在应用程序的设计中,数据库的访问是非常重要的,我们通常需要将对数据库的访问集中起来,以保证良好的封装性和可维护性。在.net中,数据库的访问,对于微软自家的SqlServer和其他数据库(支持OleDb),采用不同的访问方法,这些类分别分布于System.Data.SqlClient和System.Data.OleDb名称空间中。微软后来又推出了专门用于访问Oracle数据库的类库。我们希望在编写转载 2008-01-15 09:24:00 · 577 阅读 · 0 评论 -
局域网中根据IP地址反查主机的名称(C#)
你遇到过这种情况吗?你的防火墙报告局域网中的某个IP地址的电脑正在攻击你,但是防火墙却没有提示发出攻击的电脑名称,到底谁的电脑在攻击呢(攻击你的电脑可能是中毒了)?有一天早上你刚刚上班,打开电脑后发现连接不了服务器,到服务器那里一看才知道,原来有人使用了服务器的IP地址,到底谁在使用服务器的IP地址呢?nslookup 可以实现域名(主机名)的反查IP地址。哈哈,但今天说的是用C#实现。1. 根据转载 2007-11-12 10:22:00 · 1076 阅读 · 0 评论 -
根据文件名或文件扩展名获取文件的默认图标
有时候我们需要根据不同的文件扩展名显示不同的图标,比如用C#做一个资源管理器。在C#中可以使用 Icon icon = System.Drawing.Icon.ExtractAssociatedIcon(fileFullName) 来得到指定文件图标。但是Icon.ExtractAssociatedIcon 只能获取大图标,要获取小图标还是要使用 API。 using System;using转载 2007-11-12 10:19:00 · 1197 阅读 · 0 评论 -
TreeView实现类似Outlook在收件箱后面显示新邮件数
Outlook、Foxmail 在收到新邮件后,在收件箱的后面会显示新邮件数:收件箱(1)。我们在做应用时有时也需要类似的功能,比如警示管理中显示警示信息的条数等。怎么实现呢?看了 TreeVeiw 和 TreeNode 属性和方法,没有发现可以直接实现的;在 Google 和百度上也没有搜索到。不过 TreeView 控件有一个 DrawNode 事件,通过该事件可以自己绘制节点,可以实现我们想转载 2007-11-12 10:06:00 · 720 阅读 · 0 评论 -
ADO.NET中DataSet、DataTable、DataRow的数据复制方法
DataSet 对象是支持 ADO.NET的断开式、分布式数据方案的核心对象 ,用途非常广泛.我们很多时候需要使用其中的数据,比如取得一个DataTable的数据或者复制另一个DataTabe中的数据或者是DataRow的数据,但是只有DataSet和DataTable的复制是支持深层复制的,就是说不仅能复制元素的结构,而且能复制元素的数据,而DatatDataRow没有相关的复制的方法,下面将简转载 2007-11-09 15:11:00 · 604 阅读 · 0 评论 -
C#中调用Windows API时的数据类型对应关系
在C#中做很多应用需要使用win32 API,但发现原型函数的一些数据类型看起来非常费劲,甚至在C#中“没有”这种数据类型,查阅了一下资料,数据类型对应关系整理如下,希望对大家有用:BOOL=System.Int32BOOLEAN=System.Int32BYTE=System.UInt16CHAR=System.Int16COLORREF=System.UInt32DWORD=System.转载 2007-11-08 13:15:00 · 453 阅读 · 0 评论 -
关于VS2005 WinForm下DataGridView单元格合并,背景色设置
最近发现这方面在社区内提问的不少,发个源代码,嘿嘿 private void Form1_Load(object sender, EventArgs e) { DataTable dt = new DataTable(); dt.Columns.Add("A"); dt.Columns.Add("转载 2007-11-07 11:54:00 · 3151 阅读 · 1 评论 -
如何使MDI子窗体不重复被打开
有很多朋友希望MDI子窗体不重复被打开,如果子窗体已经被创建了,则把它激活,而不是又创建了一个MDI子窗体,其实中C#提供的MdiChildren这个属性就可以解决这个问题,下面假设一个treeview控件,点击treeview上面的相应结点,就会创建以这个结点命名的MDI子窗体,若是子窗体已经被创建,则把它激活,显示在所有子窗体的最前面。代码如下:private void treeView_转载 2007-11-07 11:37:00 · 710 阅读 · 0 评论 -
winform直接显示二进制数据中的图片
//读取DataSet中以二进制(Image)形式保存的图片 byte[] byteImage = (byte[])dataSet11.tBGPicture.Rows[2]["PicContent"]; //转成MemoryStream类型 System.IO.MemoryStream stream = new System.IO.转载 2007-11-07 11:39:00 · 703 阅读 · 0 评论 -
一个将数字转换成金额大写的函数
/**//*===========================================//转换成大写金额===========================================*/Number.prototype.toMoney = function(){// Constants:var MAXIMUM_NUMBER = 99999999999.99;// Predefi转载 2007-11-06 12:37:00 · 1062 阅读 · 0 评论 -
坐标系画图(C#)示例
//数据初始化 string[] month=new string[12]{"一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"}; float[] d=new float[12]{20.5F,60,10.8F,15.6F,30,70.9F,50.3F,30.7F,70,50.4F,30.8F,20};转载 2008-01-23 14:31:00 · 4831 阅读 · 0 评论 -
实验分析C#中三种计时器使用异同点
C#中提供了三种类型的计时器:1、基于 Windows 的标准计时器(System.Windows.Forms.Timer)2、基于服务器的计时器(System.Timers.Timer)3、线程计时器(System.Threading.Timer)下面我就通过一些小实验来具体分析三种计时器使用上面的异同点,特别是和线程有关的部分。实验例子截图:一、基于 Windows 的标准计时器(System转载 2008-01-23 14:32:00 · 751 阅读 · 0 评论 -
C#版可调节的文字阴影特效
本来春节前不准备写BLOG文章了,可前几天有几个搞C#的朋友来信说,对文章《GDI+ 在Delphi程序的应用 -- 可调节的文字阴影特效》的内容很感兴趣,但苦于对Delphi不熟悉,想请我帮忙将其改为C#版的。可他们哪里知道,我从未用C#写过代码(因我只是个业余编程爱好者,C#好像不适合我,我儿子是搞java的,对C#也不怎么熟),好在五年前我买过一本《C#入门经典》,只好赶鸭子上架,对着书边琢转载 2008-01-23 14:29:00 · 859 阅读 · 0 评论 -
DropDownList绑定枚举类型
很多的时候需要把枚举作为数据源绑定DropDownList,一直简单的做法是: 1 /**//// 2 /// 排序方向下拉列表,从DropDownList继承 3 /// 4 public class SortOrderDropDownList : DropDownList 5 { 6 public SortOrderDropDownList(转载 2007-11-07 11:58:00 · 1628 阅读 · 0 评论 -
DataGridView新特色(vs2005)
1、自定义列 Customize Cells and Columns in the Windows Forms DataGridView Control by Extending Their Behavior and Appearance Host Controls in Windows Forms DataGridView Cells 继承转载 2007-11-07 11:51:00 · 535 阅读 · 0 评论 -
C# 启动外部程序的几种方法
C# 启动外部程序的几种方法:1. 启动外部程序,不等待其退出。2. 启动外部程序,等待其退出。3. 启动外部程序,无限等待其退出。4. 启动外部程序,通过事件监视其退出。 // using System.Diagnostics; private string appName = "calc.exe"; /// /// 1. 启动外部程序,不等待其退出 ///转载 2007-11-12 10:25:00 · 714 阅读 · 0 评论 -
DataGridView 密码列(显示为*号)的设置
曾经为在DataGridView中设置密码列(显示为*号)而发愁,如何把Windows 窗体 DataGridView 的某一列的数据显示为“*”。哈哈,今天终于搞定了。需要在DataGridView的2个事件中写代码真麻烦!下面的代码把第4列设置为密码列(显示为*号): /// /// 单元格显示格式事件 /// ///转载 2007-11-12 10:28:00 · 659 阅读 · 0 评论 -
创建基于.NET的通用数据库访问层
一.引言: ADO.NET为应用程序开发人员提供了一种全新的数据库访问机制,它使得数据库编程变得相当容易。然而,在运用ADO.NET进行数据库编程时,开发人员往往会因为不注意某些细节问题而使得应用程序的可扩展性很差,也即某个数据库应用程序只能应用于某个特定类型的数据库,而不能和更多的其他类型的数据库进行交互或是移植到其它数据库平台下。本文将深入研究如何运用ADO.NET中的接口技术来实现通用数转载 2008-01-15 09:15:00 · 1171 阅读 · 0 评论 -
利用反射动态创建对象
前两天我发了一篇文章《通过反射动态实例化对象中出现的一个奇怪问题》,对反射中的某些问题疑惑不解。通过这几天不断查看MSDN,上网查询,现在终于解决了该问题。在VS.Net中,有很多种方法动态调用对象的构造函数。一是通过Activator类的CreateInstance()方法。这个方法我们在Remoting中也用过。它实际上是在本地或从远程创建对象类型,或获取对现有远程对象的引用。它的方法转载 2008-01-15 09:07:00 · 767 阅读 · 0 评论 -
ADO.NET 2.0中的DataSet和DataTable
MSDN2005年11月刊登载了John Papa的一篇文章《DataSet and DataTable in ADO.NET 2.0》,详细介绍了ADO.Net 2.0的一些新功能和特性,对于利用ADO.NET开发的程序员来说,是值得关注的。现介绍如下: 一.功能增强的DataTable在ADO.NET1.x中,DataSet完全掩盖了DataTable的光芒,并非DataTable自身转载 2008-01-15 09:03:00 · 635 阅读 · 0 评论 -
TreeView的ImageSet属性设置断线的问题
TreeView的ImageSet属性设置完后,图标可能替换掉了,但是却会出现如下图所示断线的情况。 在IE7中,即使设置了ShowLines=true,也会出现如此断线情况。(IE6貌似不会) 使用VS2005创建的页面会自动添加: 将此句删除即可。转载 2008-01-08 11:13:00 · 1067 阅读 · 0 评论 -
C#泛型集合揽胜
集合是OOP中的一个重要概念,C#中对集合的全面支持更是该语言的精华之一。 为什么要用泛型集合? 在C# 2.0之前,主要可以通过两种方式实现集合: a.使用ArrayList 直接将对象放入ArrayList,操作直观,但由于集合中的项是Object类型,因此每次使用都必须进行繁琐的类型转换。 b.使用自定义集合类 比较常见的做法是从CollectionB转载 2007-11-26 09:21:00 · 681 阅读 · 0 评论 -
在DataAdapter中开启事务
在ADO.NET 2.0中引入了strong typed table adapter,强化了strong typed dataset的设计视图,使用非常方便,但是在实际运用当中,还是遇到了一些麻烦,比如怎么在多个table adapter之间开启事务,由于table adapter自身没有提供事务功能,而且它的connection对象默认是private,所以要实现事务稍微有些麻烦,目前的解决方法转载 2007-11-26 09:18:00 · 1152 阅读 · 0 评论 -
VS.NET中自定义安装程序制作经验总结
内容介绍:介绍自定义安装程序的一些注意事项介绍如何获取自定义界面和系统参数介绍如何在安装过程中添加自定义操作自定义安装程序的一些注意事项:CustomActionData 属性自定义操作的附加数据,读取自定义操作的安装信息 CustomActionData 属性采用 /name=value 的格式。多个值必须以单个空格隔开:/name1=value1 /name2=value2。如果值内有一个空格转载 2007-11-26 09:15:00 · 1555 阅读 · 1 评论 -
ViewState使用兼谈序列化
ViewState的使用比较简单,一两句话就可以了。赋值:ViewState[key] = value;取值:value = ViewState[key];最主要的作用就是可以在当前页面保存值,ASP.NET的页面状态维护就是使用ViewState来实现的,基本上每一个ASPX页面都可以看到如下类似的html代码:input type="hidden" name="__VIEWSTATE转载 2007-11-21 08:43:00 · 865 阅读 · 0 评论 -
在C#中怎么通过类名访问类的属性
如果我有一个拥有FirstName的属性的类Perso,我能通过如下方式访问:Person.FirstName = "Mike";能通过下面的方式来访问吗Person["FirstName"]="Mike";通过反射类来实现,但是这种方法性能比较低。publci class YourClass...{ //... public object this[strin转载 2007-11-20 16:17:00 · 1031 阅读 · 0 评论 -
TreeView 树结构的断层处理
TreeView 生成最常见的一种编程实现方式就是通过“父子关系递归”生成树,一般是自顶向下递归生成。这种方法的缺陷:“由父节点及子节点”的遍历顺序意味着每个子节点的父节点必须存在,否则将搜索不到,即出现“断层现象”。本文在递归原理的基础上,通过调节父节点的层次,解决树结构的断层问题。 一、递归生成树的算法:#region 加载部门树************************转载 2007-11-20 16:11:00 · 787 阅读 · 0 评论 -
一个遍历目录下包含某些内容的所有文件的类
class contentSearch { private DirectoryInfo _baseDirectory = null; public DirectoryInfo BaseDirectory { get { return _baseDirectory; } set { _baseDirectory = value转载 2007-11-19 08:41:00 · 586 阅读 · 0 评论 -
Ado.Net读取Excel常见问题总结
经常需要在数据库与Execl之间互导数据。net时代,ADO.NET可以使用使用Microsoft.Jet.OleDb访问访问Excel,网上已经有很多类似的资源,最典型也是最简单的可能如下:(asp.net环境) // 连接字符串 string xlsPath = Server.MapPath("~/app_data/somefile.xls"转载 2007-11-18 21:15:00 · 860 阅读 · 0 评论 -
在.NET中探测U盘的插入/拔出
有同学向我问这个问题,于是就Google了一下找到答案,不过是C下的,我将其改编成了C#的。 当设备被插入/拔出的时候,WINDOWS会向每个窗体发送WM_DEVICECHANGE 消息,当消息的wParam 值等于 DBT_DEVICEARRIVAL 时,表示Media设备被插入并且已经可用;如果wParam值等于DBT_DEVICEREMOVECOMPLETE,表示Media设备已经被移转载 2007-11-12 10:57:00 · 707 阅读 · 0 评论 -
通用方法验证数组成员唯一性
没什么好说的,直接帖代码,不妥之处,还望指出!Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->private bool IsExclusiveArrayT>(T[] arr){ bool bl = true; for (int i =转载 2007-11-12 10:47:00 · 748 阅读 · 0 评论 -
如何使窗体不重复被打开
要使窗体不被重复打开,就要把已经打开的窗体保存下来进行轮寻,我们可以用ArrayList来保存已经打开的窗体实例,当new新的form时,对ArrayList中的Object进行逐个的比较,可以对form的name进行比较,也可以对form的Type进行比较(前者的效率比后者低)。虽然这个方法比较笨,但却十分有效,具体代码见下:MainForm.cspublic static ArrayL转载 2007-11-07 11:33:00 · 738 阅读 · 0 评论 -
实现类似于baidu的那种用空格键的分词查询
/// /// 实现类似于baidu的那种用空格键的分词查询 /// /// 要查询表的字段集合 /// 要查询的表名 /// 查询的关键字 /// 查询的模式 /// 具体的查询语句 private string GetSearchWord(string[] tableField ,string tableName ,string strKeyword ,str转载 2007-11-06 12:44:00 · 615 阅读 · 0 评论 -
Vsiaul C#如何读取注册信息
从视窗95开始,微软公司就在视窗系统中引入了注册表这个概念。注册表到底是什么东东呢?它是视窗系统的一个核心的数据库,在这个数据库中存放中与系统相关的各种参数,这些参数直接控制中系统的启动、硬件的驱动程序安装信息以及在视窗系统上运行的各种应用程序的注册信息等。这就意味着,如果注册表因为某些原因受到了破坏,轻者是视窗系统启动过程出现异常,重者就有可能导致整个系统的完全瘫痪。所以正确的认识注册表,及转载 2007-10-17 11:34:00 · 391 阅读 · 0 评论 -
用Visual C#来删除注册表中的注册信息
在《用Visual C#读取注册信息》的文中,已经介绍了用 Visual C#来读取注册表中的注册信息。本文就来介绍用Visual C#对注册表的另外一个操作,这也是一个具有破坏性的操作过程--删除注册信息。在上文中已经知道,由于Visual C#本身没有带类库,他对注册表的处理过程是通过调用.Net FrameWork SDK中的名称空间Microsoft.Win32中封装的二个类来实现转载 2007-10-17 10:49:00 · 785 阅读 · 0 评论 -
对DataGridView中的某一列大写设置
利用DataGridViewTextBoxEditingControl对DataGridView中的某一列大写设置其中DataGridViewTextBoxEditingControl表示可以承载于 DataGridViewTextBoxCell 中的文本框控件。 DataGridView.EditingControlShowing 事件在显示用于编辑单元格的控件时发生,可以处理此事转载 2007-11-04 10:22:00 · 1743 阅读 · 0 评论 -
ADO.NET中对并发性问题的处理
1.与DataAdapter对象相连接的DataSet对象使用乐观锁来处理记录内容冲突2.如果使用用户存储过程来替代表操作的话,并发问题的处理还需要一些额外的工作3.Data Adapter配置向导能够创建存储过程来处理这个问题4.当ContinueUpdateOnError为false(缺省值)时,在发生第一个冲突的时候会抛出DBConcurrencyException异常5.捕获该异常并且通知转载 2007-11-04 10:18:00 · 957 阅读 · 0 评论 -
新增一个行号列
1 /**//// 2 /// 添加行号 3 /// 4 /// 5 /// 6 private void cMS_CNTRDataGridView_RowPostPaint(object sender, DataGridViewRowPostPaintEventArgs e) 7 { 8转载 2007-11-04 10:17:00 · 508 阅读 · 0 评论 -
关于VS.Net2005中串口操作说明(C#)(SerialPort组件)
本人不太喜欢用文字来描述程序的实现原理的方法,在这里也一样,只用代码来说明问题下面呢,是我写的串口操作的一段代码,尽供参考using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;usin转载 2007-11-02 16:19:00 · 2697 阅读 · 2 评论 -
运用C#在采集时进行自动验证登录
最近有朋友在问我如何进行信息采集时对一些有用户或和密码验证的网站进行采集,刚好最近在项目中有运用到这个来进行验证登录,将部分代码发出来与大家分享 学习,这只是我在网上参考人家的做的一个雏形试用版,虽然能用,但是性能可能不是那么好。。目前只能对那些没有登录验证码的网站有效,如果有验证码的,呵 呵。那还得去写一个分析验证的类来进行Get.....最近我的工作比较杂乱,也没有来得及整理,这些都是临时用了转载 2007-11-02 15:17:00 · 579 阅读 · 0 评论