C#调用扫描仪资料总结
摘要:1 几种调用扫描仪的方案http://hi.baidu.com/scutsolo/blog/item/89f9f0fadeb6c514a9d31170.html 2.用imgscan.ocx来扫描图像(转) http://blog.csdn.net/trnbo/archive/2004/11/09/...
阅读全文
使用DataGridView数据窗口控件,构建用户快速输入体验
摘要:在“随风飘散” 博客里面,介绍了一个不错的DataGridView数据窗口控件《DataGridView数据窗口控件开发方法及其源码提供下载》,这种控件在有些场合下,还是非常直观的。因为,在一般要求客户录入数据的地方,一般有两种途径,其一是通过弹出一个新的窗口,在里面列出各种需要输入的要素,然后保存...
阅读全文
winform等待窗口
摘要:在开发Winform程序的时候,经常会用到等待窗口(如网络通讯、数据库连接等需要一定时间来执行的操作),这样可以给用户提供更好的体验。 等待窗口的主要功能是一边执行需要等待的操作,一边显示一个等待界面。当执行完毕时等待界面消失。用户可以提前取消操作,还可以设置操作的最大等待时间,若超过指定时间仍没...
阅读全文
WinForm中快捷键与组合按键的设置
摘要:快捷键在WinForm软件中必不可少,可以提高使用者的效率,下面就来看看怎样在我们的窗体中加上快捷键,新建一个Windows应用程序(我将解决方案命名为Keybd_Test,项目名为UI)。删掉自动生成的Form1.cs窗体,新建MainForm.cs窗体。调整大小,将StartPosition设置...
阅读全文
用C#实现生成PDF文档的方法
摘要:using System; using System.IO; using System.Text; using System.Collections; namespace PDFGenerator { public ...
阅读全文
C#自定义消息映射!
摘要:C#自定义消息通信往往采用事件驱动的方式实现,但有时候我们不得不采用操作系统的消息通信机制,例如在和底层语言开发的DLL交互时,是比较方便的。下面列举了一些实现方式,供大家参考: 一、通过SendMessage或postmessage函数发送: 1、定义消息在C++中引用底层的函数很简单,自定义消息...
阅读全文
C#重绘TabControl的Tabpage标签,添加图片及关闭按钮
摘要:usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Linq;usingSystem.Text;usingSys...
阅读全文
C# 读取机器码,CPU序列号,生成注册码类(优化)
摘要:有些CPU不支持获取序列号。 获取strCpu = myObject.Properties["Processorid"].Value.ToString();时,请判断下返回是否为null,为null的话就说明cpu不支持。获取集合对象属性,除非100%确定,否则不要直接访问属性。一旦返回空,就会报空引用错误 代码
阅读全文
Hashtable, ArrayList, List, Dictionary学习
摘要:Hashtable用法在.NET Framework中,Hashtable是System.Collections命名空间提供的一个容器,用于处理和表现类似key/value的键值对,其中key通常可用来快速查找,同时key是区分大小写;value用于存储对应于key的值。Hashtable中key/value键值对均为object类型,所以Hashtable可以支持任何类型的key/value键值对.。在哈希表中添加一个key/value键值对:HashtableObject.Add(key,value); 在哈希表中去除某个key/value键值对:HashtableObject.Remov
阅读全文
.NET开发中你可能会用到的常用方法总结
摘要:学习.NET有一些时间了,平日积累了一些自己认为比较实用的方法(有自己写的,也有学习别人的),可能会在不同的项目开发中使用到。分享给大家,有什么好的方法还会不断添加,个别方法你可能认为很菜,仅提供给新手。当然,实现功能的方法并不唯一,这里仅供大家参考。 将文件转换成字符串,常用于读取网站模板[代码]读取,添加,修改xml文件[代码]取得文件扩展名[代码]替换文本中的空格和换行[代码]验证码实现方法[代码]文件创建、复制、移动、删除[代码]去掉结尾,[代码]生成任意位数的随机数[代码]实现文件的上传[代码]判断输入是否为日期类型[代码]MD5加密字符串处理[代码]过滤非法字符,防止注入式攻击等[
阅读全文
DataView的RowFilter特殊字符的处理
摘要:DataView的RowFilter里面遇到的特殊字符要用"[]"括起来,单引号要换成"''"。LIKE关键字进行过滤时,如果碰到特殊字符包含:"[","]","%","*","'" 解决的方法如下:dv.RowFilter = "[Code] like '%条件字符串%'"; 过滤条件字符处理后,内容如下:string rowFilter=条件字符串;rowFilter=rowFilter.Replace("[", "[[ ") .Replace("]", " ]]") .Replace("*", "[*]") .Replace("%", "[%]") .Replace("[[ ",
阅读全文
读取和保存应用程序设置
摘要:为了使我们的应用程序对用户友好,需要记住应用程序上次退出时的设置,以便再次运行这个应用程序恢复上次退出时的场景。在上面所示的应用程序中,“每章单词数”就是需要记住的应用程序设置。那么,让我们来写一个通用的抽象基类来做这件事吧。下面就是 AppConfigureBase.cs 源程序文件上述程序中第 54 行到第 84 行的 GetXXX 和 SetXXX 方法被声明为 protected,供派生类使用。如有需要,可自行增加获取和设置不同数据类型的方法。哦,上述程序第 44 行中用到的 Api 类所在的 Api.cs 源程序文件如下所示:我们的应用程序应该从 AppConfigureBase 这
阅读全文
Winform通用自动完成控件的开发(一)
摘要:工作项目需要,需要一个通用的自动完成控件;比如支持在TextBox控件和DataGridView控件,重要的是,需要AutoComplete控件能多列显示数据,并能多选单选的功能,支持多种方式操作,比如回车选定,上下键移动等等,还要求可轻易的移植到其他项目中使用。于是,感谢伟大的google和伟大的cnblogs,经过两天学习,做了这个AutoCompleteCtrls控件。在研究过程中发现,如果想做到一个控件能支持TextBox和DataGridView,是很复杂的,需要很多映射和判断,做出来的代码也相当复杂,可读性差,干脆,抽象出来个基类,然后再抽象积累中泛化实现对应的AutoComple
阅读全文
[项目过程中所遇到的各种问题记录]图表篇——有关MSChart的一些小技巧
摘要:完成了有关编辑器篇的内容,接下来记录下这一年里在有关图表使用过程中碰到的一些问题及个人的解决方法。 以下是本文所要介绍的内容:1、MSChart基本概况介绍。2、开发过程中碰到的问题及解决方法。一、MSChart基本概况介绍 在开发一些管理系统的时候总会碰到一些需求需要对报表进行图形化的展示——图表,在微软的MSChart没出来前,.NET的winforms下许多的图表控件不是要收费就是可使用的图表类型较少或者各种资料太少(也可能是我了解的太少),不过自从在VS2008上微软推出了MSChart后,在winforms上进行图表统计就方便了很多很多。 MSChart分为2个部分,一个是winfo
阅读全文
[项目过程中所遇到的各种问题记录]工具篇——.NET开发时常用的工具类库
摘要:在日常开发的过程当中我们总是会根据项目的开发需求将一些公用的类或者方法进行抽象封装,这些类或方法的抽象封装可能是基于某个项目或者多个项目,最常见的应该就是SQLHelper了,这些类库在实际使用的过程当中会为我们项目的开发提供很大的帮助,大大简化了实际开发的难度及进度(这个其实谁都知道),本篇文章主要是针对我今年来一直在完善的公司的工具类库的写的一些心得,可能许多朋友也都有类似的类库,也欢迎大家交流。 以下是本文所要介绍的内容:1、为什么要有工具类库?2、个人认为的工具类库的一些编写规则3、我的工具类库有哪些东西?一、为什么要有工具类库? 这个在文章开头也说了,工具类库纯粹就是为了对一些公用或
阅读全文
钩子(一)
摘要:钩子(Hook),是Windows消息处理机制的一个平台,应用程序可以在上面设置子程以监视指定窗口的某种消息,而且所监视的窗口可以是其他进程所创建的。当消息到达后,在目标窗口处理函数之前处理它。钩子机制允许应用程序截获处理window消息或特定事件。 基本概念: 钩子实际上是一个处理消息的程序段,通过系统调用,把它挂入系统。每当特定的消息发出,在没有到达目的窗口前,钩子程序就先捕获该消息,亦即钩子函数先得到控制权。这时钩子函数即可以加工处理(改变)该消息,也可以不作处理而继续传递该消息,还可以强制结束消息的传递。 钩子也可以理解为WINDOWS留给我们的后门,比如你想控制键盘,在DOS时代很
阅读全文
c#的DateTime.Now函数详解
摘要://2008年4月24日 System.DateTime.Now.ToString("D"); //2008-4-24 System.DateTime.Now.ToString("d"); //2008年4月24日 16:30:15 System.DateTime.Now.ToString("F"); //2008年4月24日 16:30 System.DateTime.Now.ToString("f"); //2008-4-24 16:30:15 System.DateTime.Now.ToString("G"); //2008-4-24 16:30 System.DateTime.Now.
阅读全文
关于C# 中的Attribute 特性
摘要:声明纠结地说,这应该算是一篇关于Attribute 的笔记,其中的一些思路和代码借鉴了他人的文笔(见本文底部链接)。但是,由于此文对Attribute 的讲解实在是叫好(自夸一下 ^_^),所以公之于众,希望能对大家有所帮助。Attribute与Property 的翻译区别Attribute 一般译作“特性”,Property 仍然译为“属性”。Attribute 是什么Attribute 是一种可由用户自由定义的修饰符(Modifier),可以用来修饰各种需要被修饰的目标。简单的说,Attribute就是一种“附着物” —— 就像牡蛎吸附在船底或礁石上一样。这些附着物的作用是为它们的附着体追
阅读全文
C#实现动态调用WebService
摘要:看到很多动态调用WebService都只是动态调用地址而已,下面发一个不光是根据地址调用,方法名也可以自己指定的,主要原理是根据指定的WebService地址的WSDL,然后解析模拟生成一个代理类,通过反射调用里面的方法,具体看代码 下面是WebService代码:[代码]下面是客户端的代码:[代码]
阅读全文
动态调用一 WebService
摘要:多数时候我们通过 "添加 Web 引用..." 创建客户端代理类的方式调用WebService,但在某些情况下我们可能需要在程序运行期间动态调用一个未知的服务。在 .NET Framework 的 System.Web.Services.Description 命名空间中有我们需要的东西。具体步骤:1. 从目标 URL 下载 WSDL 数据。2. 使用 ServiceDescription 创建和格式化 WSDL 文档文件。3. 使用 ServiceDescriptionImporter 创建客户端代理类。4. 使用 CodeDom 动态创建客户端代理类程序集。5. 利用反射调用相关 WebS
阅读全文
动态调用WebService(C#)
摘要:通常我们在程序中需要调用WebService时,都是通过“添加Web引用”,让VS.NET环境来为我们生成服务代理,然后调用对应的Web服务。这样是使工作简单了,但是却和提供Web服务的URL、方法名、参数绑定在一起了,这是VS.NET自动为我们生成Web服务代理的限制。如果哪一天发布Web服务的URL改变了,则我们需要重新让VS.NET生成代理,并重新编译。在某些情况下,这可能是不能忍受的,我们需要动态调用WebService的能力。比如我们可以把Web服务的URL保存在配置文件中,这样,当服务URL改变时,只需要修改配置文件就可以了。 说了这么多,实际上我们要实现这样的功能: C#代码 p
阅读全文