文章分类 - C#
1
摘要:递归(recursion):程序调用自身的编程技巧。 递归满足2个条件: 1)有反复执行的过程(调用自身) 2)有跳出反复执行过程的条件(递归出口) 递归算法的通用解法: f(para......){ if(...)//终止条件 {...//递归的终止项,一般是最低项 } else{//继续递归 .
阅读全文
摘要:DataTable状态(DataRowState, AcceptChanges,RejectChanges,BeginEdit)介绍 DataRowState 枚举:Added该行已添加到 DataRowCollection 中,AcceptChanges尚未调用。Deleted该行已通过 DataRow 的 Delete 方法被删除。Detached该行已被创建,但不属于任何 DataRowCollection。DataRow 在以下情况下立即处于此状态:创建之后添加到集合中之前;或从集合中移除之后。Modified该行已被修改,AcceptChanges 尚未调用。Unchanged该行自
阅读全文
摘要:AcceptChanges用于 Update后因为:若用在Update前,调用AcceptChanges办法会将所有批改保存到DataSet或DataTable中,使得所有行的状况都是Unchanged(没有被更改状况,Added、Modified、Unchanged将保留当前修改过的值,Deleted的行将从DataTable中移除,,最后所有的行的状态都置为Unchanged)。而DataAdapter.Update办法在保存数据到数据库表时做过一个搜检,即搜检表行是否被修悔改,若是没被修悔改,那么更需将不会履行任何号令,直接跳过本行,开端搜检下一行,如此,一个表若是行都是Unchange
阅读全文
摘要:在使用vs进行开发时,我们有时会使用Image.FromFile配合PictureBox来加载并显示图片,感觉挺方便,但是使用Image.FromFile有个小问题,加载完文件后不自动释放,导致再次操作被关联文件时候出现类似“文件xxx正由另一进程使用,因此该进程无法访问该文件。”的错误,因此当要对一个文件进行多次操作时,最好不要使用Image.FromFile 而使用Image.FromStream。 下面是一个例子:下面代码目的是将一个图片加载并显示在picturebox上,一般情况下得到预期的结果,然而对于同一个filepath,若连续两次调用下面的语句系统将会报错(如用户多次选择加载.
阅读全文
摘要:最进在使用VS2005开发时,发现有很多新东西,比如,我们常用的ToolBar ,MainMenu,StatusBar,变成了功能强大,样式新颖的,ToolStrip,MenuStrip,StatusStrip,等.不过还是有些不足,比如,ComboBox 变化不大,下拉框里面只能是文本的,很不方便,我的想法是在下拉ComboBox时会出现TreeView 控件,这也是我今天要做的控件ComboBoxTreeView开始写了一个,关键点是弹出TreeView 控件,但是把TreeView 做成一个窗体,弹出,还是有什么办法,一查VS2005有一个类窗体弹出类(很强大的对象)ToolStripD
阅读全文
摘要:一、创建DataTable对象前面已经学习了通过DataAdapter的Fill来生成DataTable对象,下面学习如何创建自己的DataTable对象,尤其是希望使用列级或表级限制来验证数据时。1、创建DataTable对象可以采用创建DataSet对象的相同方式来创建DataTable对象。DataTable拥有一个可选构造函数,可用来设置DataTable对象的TableName属性。DataTabletb1 =newDataTable("学生");Console.Write(tb1.TableName);2、向DataSet中的Tables集合中添加DataTable在创建DataT
阅读全文
摘要:datarow的rowstate属性(状态)取值有5种:detached, unchanged, added, deleted, modified. 当我们用datarow newrow = datatable.newrow();方法产生一个新的datarow时, 它的状态是detached,意为“分离”,如果把一个datatable理解为一个果盘,那么状态为detached的datarow可以理解为放在果盘(datatable)外的苹果(datarow). 可能有人要问:“为什么不是system.data.datarow dr = new system.data.datarow();呢? 因
阅读全文
摘要:C#事件支持发布者/订阅者模式,发布者将事件通知给订阅者,而订阅者在事件发生时调用已经注册好的事件处理函数。首先要在一个类中定义某种类型的委托和此种委托类型事件。然后在该类中通过一个函数,将该事件进行触发。 当外部其他类有对该事件订阅时候,其他类会转去处理该事件的处理程序。从而完成信息的交流。这样做,一个最大的好处就是事件触发类不用关心该事件的所有处理程序,只关心他自己的工作以及他所关心的事件即可...
阅读全文
摘要:微软中文MSDN上的一些文章链接架构方面微软智能客户端体系结构指南(推荐)http://www.microsoft.com/china/msdn/library/architecture/architecture/architecturetopic/SCArchDeGuide/cover.mspxMicrosoft 体系结构概述http://www.microsoft.com/china/MSDN...
阅读全文
摘要:在C#中使用代理的方式触发事件 (委托和事件 )事件(event)是一个非常重要的概念,我们的程序时刻都在触发和接收着各种事件:鼠标点击事件,键盘事件,以及处理操作系统的各种事件。所谓事件就是由某个对象发出的消息。比如用户按下了某个按钮,某个文件发生了改变,socket上有数据到达。触发事件的对象称作发送者(sender),捕获事件并且做出响应的对象称作接收者(receiver),一个事件可以存在...
阅读全文
摘要:紧耦合从前,在南方一块奇异的土地上,有个工人名叫彼得,他非常勤奋,对他的老板总是百依百顺。但是他的老板是个吝啬的人,从不信任别人,坚决要求随时知道彼得的工作进度,以防止他偷懒。但是彼得又不想让老板呆在他的办公室里站在背后盯着他,于是就对老板做出承诺:无论何时,只要我的工作取得了一点进展我都会及时让你知道。彼得通过周期性地使用“带类型的引用”(原文为:“typed...
阅读全文
摘要:在编程中经常会遇到在一个按钮中执行复杂操作,并将复杂操作最后返回的值加入一个ListView或ComboBox中候选。这个时候程序会卡,当程序员将这些卡代码放进线程(Thread)中后发现当对控件操作时出现“线程间操作无效: 从不是创建控件的线程访问它”异常。 为什么.net不让我们跨线程操作控件,这是有好处的。因为如果你的线程多了,那么当两个线程同时尝试将一个控件变为自己...
阅读全文
摘要:其实很久以前就碰到过这个问题了,只是一直没有时间对其进行整理。这次在开发过程中又碰上了,所以感觉有必要把它整理一下。 网上一种非常简单的方法,在初始化的地方加上“CheckForIllegalCrossThreadCalls = false”这句代码便可,如果幸运的话,可能不会报错。MSDN解释如下:“如果试图访问控件的方法或属性之一的线程不是创建该控件的线程,...
阅读全文
摘要:VS2008转VS2005 用文本编辑器打开sln文件 Microsoft Visual Studio Solution File, Format Version 10.00# Visual Studio 2008 将以上内容修改后成为以下内容: Microsoft Visual Studio Solution File, Format Version 9.00# Visual Studio ...
阅读全文
摘要:Visual Studio 2003/Visual Studio 2005常用快捷键(快捷方式) 调试快捷键 F6: 生成解决方案Ctrl+F6: 生成当前项目F7: 查看代码Shift+F7: 查看窗体设计器F5: 启动调试Ctrl+F5: 开始执行(不调试)Shift+F5: 停止调试Ctrl+Shift+F5: 重启调试F9: 切换断点Ctrl+F9: 启用/停止断点Ctrl+Shift+F...
阅读全文
摘要:http://fzl-x.com/index.php?fromuid=28在使用打开对话框时我可以得到FileName属性,但得到的是完整的路径。例如:D:\other project\Data\text.mxd但我有的时候只是需要所选择文件的文件名称,而不要前面的路径;或是只需要前面的路径而不要文件名称。using system.io.pathstring fullPath ;fullPath ...
阅读全文
摘要:C++面向对象编程入门:类(class) 副标题: 作者:佚名 文章来源:本站原创 点击数: 503 更新时间:2006-6-22 ...
阅读全文
摘要:c#.net常用函数列表 1、DateTime 数字型 System.DateTime currentTime=new System.DateTime(); 1.1 取当前年月日时分秒 currentTime=System.DateTime.Now; 1.2 取当前年 int 年=currentTime.Year; 1.3 取当前月 int 月=currentTime.Month; 1.4 取当前...
阅读全文
摘要:阅读某本C#书所写的笔记 1)decimal,即十进制类型,是一种高精度、128位数据类型,它所表示的范围从大约1.0*10^-28到7.9*102^28的28至29位有效数字,注意该精度是以位数(digits)而不是以小数位(decimal places)来表示的。2)decimal类型的变量在赋值时要在值后面加m下标,否则将被编译器当作double类型处理。3)System.delegate ...
阅读全文
摘要:使用C#实现阿拉伯数字到大写中文的转换 作者: menway发表时间: 2003-8-3 4:28:41 //Money类 using System; namespace Money { /// /// 本类实现阿拉伯数字到大写中文的转换 /// 该类没有对非法数字进行判别 /// 请调用NumToChn方法 /// 作者:menway /// public class Money ...
阅读全文
1