使PropertyGrid控件的属性值可以显示多行的方法
摘要:第一步:重写UITypeEditor的GetEditStyle方法;第二部:重写UITypeEditor的EditValue方法;具体实现如下: 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6 using System.Windows.Forms.Design; 7 using System.Drawing.Design; 8 using System.Windows.Forms; 9 1
阅读全文
posted @
2013-10-28 14:09
小桥屋檐下
阅读(1921)
推荐(2) 编辑
C# BackgroundWorker组件学习
摘要:C# BackgroundWorker组件学习 一个程序中需要进行大量的运算,并且需要在运算过程中支持用户一定的交互,为了获得更好的用户体验,使用BackgroundWorker来完成这一功能. BackgroundWorker类允许您在单独的专用线程上运行操作。 耗时的操作(如下载和数据库事务)在长时间运行时可能会导致用户界面 (UI) 似乎处于停止响应状态。 如果您需要能进行响应的用户界面,而且面临与这类操作相关的长时间延迟,则可以使用 BackgroundWorker类方便地解决问题(MSDN)。 若要在后台执行耗时的操作,请创建一个 BackgroundWorker,侦听那些报告操..
阅读全文
posted @
2013-10-09 15:36
小桥屋檐下
阅读(2391)
推荐(1) 编辑
C#编写Windows 服务
摘要:Microsoft Windows 服务(即,以前的 NT 服务)使您能够创建在它们自己的 Windows 会话中可长时间运行的可执行应用程序。这些服务可以在计算机启动时自动启动,可以暂停和重新启动而且不显示任何用户界面。这使服务非常适合在服务器上使用,或任何时候,为了不影响在同一台计算机上工作的其他用户,需要长时间运行功能时使用。还可以在不同于登录用户的特定用户帐户或默认计算机帐户的安全上下文中运行服务。 使用Microsoft Visual Studio2012可以很方便的创建一个Windows服务,本例实现一个向D盘的txt文件里,写入系统时间的Windows服务。 新建一个Windo.
阅读全文
posted @
2013-06-26 17:43
小桥屋檐下
阅读(2042)
推荐(4) 编辑
C#判断本地系统的网络连接状态
摘要:函数InternetGetConnectedState返回本地系统的网络连接状态。语法:BOOL InternetGetConnectedState(__out LPDWORD lpdwFlags,__in DWORD dwReserved);参数:lpdwFlags[out]指向一个变量,该变量接收连接描述内容。该参数在函数返回FLASE时仍可以返回一个有效的标记。该参数可以为下列值的一个或多个。值含义INTERNET_CONNECTION_CONFIGURED0x40Local system has a valid connection to the Internet, but it mi
阅读全文
posted @
2013-06-03 11:05
小桥屋檐下
阅读(3212)
推荐(3) 编辑
三种批量插入数据的方法
摘要:批量插入数据本文将介绍三种批量插入数据的方法。第一种方法是使用循环语句逐个将数据项插入到数据库中;第二种方法使用的是SqlBulkCopy,使您可以用其他源的数据有效批量加载 SQL Server 表;第三种使用的方法是sql server中的表值参数方法,表值参数是 SQL Server 2008 中的新参数类型。表值参数是使用用户定义的表类型来声明的。使用表值参数,可以不必创建临时表或许多参数,即可向 Transact-SQL 语句或例程(如存储过程或函数)发送多行数据。 代码示例:此例子为控制台输出程序,有两个类,一个为BulkData类,主要实现了表值参数和sqlbulkcopy是如何
阅读全文
posted @
2013-04-08 13:00
小桥屋檐下
阅读(7508)
推荐(7) 编辑
C#实现文件拖放并打开文件
摘要:C#实现文件拖放并打开文件需要知道的ListBox的两个事件:当您在控件的边界内拖动对象时,便会发生 DragEnter 事件;该事件用于确定当前拖动的对象是不是您要放到控件上的对象。 在将一个或多个文件拖到控件上时,需要处理此事件。 这使得在将对象拖到控件上方时,能够根据所拖动的对象显示相应的图标。 将拖动的对象释放到控件上时,会发生 DragDrop 事件。功能描述:向ListBox拖入一个文件,ListBox显示该文件的路径,然后单击该路径,点击Open按钮打开该文件。代码实现:需要将ListBox的AllowDrop属性改为true,并实现它的DragEnter、DragDrop这两个
阅读全文
posted @
2012-10-10 10:55
小桥屋檐下
阅读(7551)
推荐(2) 编辑
C#学习——序列化和反序列化练习的重构
摘要:目的:代码的重构!我上一次写的随笔“C#学习——序列化和反序列化”对接口的理解似乎有误,接口基本上没进行什么设计,之后虽然也重新设计了一下,但是写了两个接口IDeserialize和ISerialize每个接口里面只有一方法,分别为反序列化和序列化,有点感觉过度设计,所以现在写了一篇C#学习——序列化和反序列化练习的重构,来改正这一错误,这一例子觉得有一些地方写的不妥,希望大家觉得哪里不顺眼,踊跃发言哈!示例: 1、新建解决方案Serializer 2、新建类库Jack.Gao.Domain,并在该类库下添加Person类,Person类的代码如下:View Code 1 using Sy..
阅读全文
posted @
2012-08-03 15:24
小桥屋檐下
阅读(1506)
推荐(1) 编辑
C#序列化、反序列化学习
摘要:概念:序列化就是将对象转换为可保持或传输的过程,与序列化相反的过程就是反序列化。作用:通过序列化可以很轻松的存储和传输对象。三种序列化技术: .NET提供了三种序列化技术,我只知道这三种技术。分别是:Xml序列化、二进制序列化、Soap序列化(需要在项目内添加引用System.Runtime.Serialization.Formatters.Soap,然后在类中using这个引用。)Xml序列化是将对象的公共属性和字段转换为序列格式并保存在Xml文件中。Xml反序列化则是将Xml中的数据重新生成对象。二进制序列化指使用二进制编码生成精简的序列化,用于存储或基于套接字的网络流。二进制序列化保持类
阅读全文
posted @
2012-07-28 18:59
小桥屋檐下
阅读(2193)
推荐(0) 编辑
C#学习之——运算符重载
摘要:运算符重载,就是对已有的运算符重新进行定义,赋予其另一种功能,以适应不同的数据类型。要重载运算符需要使用 operator关键字,并且要使用访问修饰符static修饰。如下:View Code 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 6 namespace ConsoleApplication3 7 { 8 class Program 9 {10 public class Sum11 {12 ...
阅读全文
posted @
2012-06-26 13:25
小桥屋檐下
阅读(320)
推荐(0) 编辑