微软C#语言
文章平均质量分 77
luolunz
天生不是程序员,但坚持着。
展开
-
C#中的checked与implicit,explicit
默认情况下,如果表达式仅包含常数值,且产生的值在目标类型范围之外,则它会导致编译器错误。如果表达式包含一个或多个非常数值,则编译器不检测溢出。在下面的示例中,计算赋给 i2 的表达式不会导致编译器错误。 int i2 = 2147483647 + ten;checked{ int i3 = 2147483647 + ten; Con原创 2012-08-06 19:41:01 · 778 阅读 · 0 评论 -
DEV GridControl小结
1、 如何解决单击记录整行选中的问题View->OptionsBehavior->EditorShowMode 设置为:Click2、 如何新增一条记录(1)、gridView.AddNewRow()(2)、实现 gridView_InitNewRow 事件3、如何解决 GridControl 记录能获取而没有显示出来的问题gridView.populateColu转载 2013-04-12 13:27:46 · 1349 阅读 · 0 评论 -
DevExpress,GridControl如何添加自定义列,重写RepositoryItem
DevExpress,GridControl如何添加自定义列,重写RepositoryItem如何向XtraGrid添加自定义控件怎样向XtraGrid中添加自己创建的XtraEditors编辑控件可以创建 RepositoryItem派生类,并且为其声明静态构造方法和注册方法,如果要在设计器中使用还得给注册方法添加UserRepositoryItemAttribute属性标记,还必须原创 2013-04-15 10:54:50 · 5820 阅读 · 0 评论 -
如何让自定义控件属性值更改后,值立即显示到界面上 Invalidate()
在自定义控件(复合控件)后,有些属性想立即显示到界面上,而不是编译之后才能,显示到界面上,这个时候,应该在控件属性的set操作里面添加相应的函数处理。 using System;using System.Collections.Generic;using System.ComponentModel;using System.Drawing;using System.Data原创 2013-04-15 10:59:19 · 4731 阅读 · 1 评论 -
DEV GridControl 常用属性(一)
DEV GridControl 常用属性(一).隐藏最上面的GroupPanelgridView1.OptionsView.ShowGroupPanel=false;2.得到当前选定记录某字段的值sValue=Table.Rows[gridView1.FocusedRowHandle][FieldName].ToString();3.数据只读gridView1.Option转载 2013-04-15 11:29:34 · 1435 阅读 · 0 评论 -
Winform程序全局热键与局部热键(键盘快捷键的捕获)
Winform程序全局热键Winform程序全局热键一般采用的是,调用windows api的形式,主要是通过下面的四个函数 /// /// 如果函数执行成功,返回值不为0。 /// 如果函数执行失败,返回值为0。要得到扩展错误信息,调用GetLastError。.NET方法:Marshal.GetLastWi原创 2013-04-26 08:41:42 · 5230 阅读 · 2 评论 -
GhostDoc使用与原始注释
一、简介 GhostDoc是Visual Studio的一个免费插件,可以为开发人员自动生成XML格式的注释文档。 二、下载 需要的朋友可以去这里下载,填个Email地址就可以下了:GhostDoc下载地址 三、安装 下载安装完成后,可以在Visual Studio的工具菜单下找到GhostDoc的身影。 三、使用 在使用的时候,主要原创 2013-04-26 09:00:04 · 2354 阅读 · 0 评论 -
System.Array简单使用
定义数组: 定义不初始化:数据类型[] 数组名称= new 数据类型[元素个数]; 定义并初始化:数据类型[] 数组名称= new 数据类型[]{array1,array2};1System.Array 类 C#中提供了一个现成的名为System.Array的类,可以通过这个类提供的属性和方法对数组执行大多数操作。 System.Array 对象创建:Array类是原创 2013-07-10 10:16:22 · 1690 阅读 · 0 评论 -
System.Collections.Generic 命名空间
System.Collections.Generic 命名空间包含定义泛型集合的接口和类,用户可以使用泛型集合来创建强类型集合,这种集合能提供比非泛型强类型集合更好的类型安全性和性能。类类说明ComparerT>为 IComparerT> 泛型接口的实现提供基类。DictionaryTKey, TValue>表原创 2013-07-10 09:47:42 · 1312 阅读 · 0 评论 -
System.Collections命名空间
1 System.Collections命名空间System.Collections命名空间包含可使用的集合类和相关的接口。该命名空间下的.NET非泛型集合类如下所示。— System.Collections.ArrayList:数组集合类— System.Collections.BitArray:布尔集合类— System.Collections.Qu原创 2013-07-10 10:04:42 · 1648 阅读 · 0 评论 -
C# 参考之转换关键字:operator、explicit与implicit
operatoroperator 关键字用于在类或结构声明中声明运算符。运算符声明可以采用下列四种形式之一:public static result-type operator unary-operator ( op-type operand )public static result-type operator binary-operator ( op-type转载 2013-06-24 15:24:35 · 866 阅读 · 0 评论 -
跨线程中调用winform窗体控件
由于 Windows 窗体控件本质上不是线程安全的。因此如果有两个或多个线程适度操作某一控件的状态(set value),则可能会迫使该控件进入一种不一致的状态。还可能出现其他与线程相关的 bug,包括争用和死锁的情况。于是在调试器中运行应用程序时,如果创建某控件的线程之外的其他线程试图调用该控件,则调试器会引发一个 InvalidOperationException本文用一个很简单的示例来讲转载 2013-07-16 10:26:19 · 1369 阅读 · 0 评论 -
自定义控件添加事件
事件,委托,总是看起来有点绕,不过本文不介绍这些,只说说如何为自定义控件添加自定义事件。本文所说的自定义控件,非继承其他现有Microsoft控件或者组合控件,而是完全继承UserControl的东西。既然不是继承自其他现有控件或者控件组合,在特定需求下,有添加自定义事件的可能性,或者对继承自UserControl而得到的事件进行些许扩展,以期以简便的方式得到更丰富的信息等等。转载 2013-07-16 15:42:51 · 1253 阅读 · 0 评论 -
C#委托的介绍(delegate、Action、Func、predicate)
C#委托的介绍(delegate、Action、Func、predicate) 委托是一个类,它定义了方法的类型,使得可以将方法当作另一个方法的参数来进行传递。事件是一种特殊的委托。 1.委托的声明 (1). delegatedelegate我们常用到的一种声明 Delegate至少0个参数,至多32个参数,可以无返回值,也可以指定返回值类型。 例:pub转载 2013-08-03 09:14:27 · 1213 阅读 · 0 评论 -
.Net基础一、.net语法(c#)
1原创 2013-08-06 08:59:34 · 2331 阅读 · 0 评论 -
C#中yield用法
yield关键字向编译器指示它所在的方法是迭代器块。编译器生成一个类来实现迭代器块中表示的行为。在迭代器块中,yield 关键字与return 关键字结合使用,向枚举器对象提供值。这是一个返回值,例如,在foreach 语句的每一次循环中返回的值。yield 关键字也可与break 结合使用,表示迭代结束。例子:yield return ;yield break;转载 2013-08-07 16:59:21 · 1210 阅读 · 0 评论 -
BindingSource
基于BindingSource的WinForm开发 1.引言 BindingSource组件是数据源和控件间的一座桥,同时提供了大量的API和Event供我们使用。使用这些API我们可以将Code与各种具体类型数据源进行解耦;使用这些Event我们可以洞察数据的变化。2.简单绑定 DataTable myTable = myTableAdapter.GetData()转载 2013-09-18 10:01:07 · 3509 阅读 · 0 评论 -
给Visual Studio 添加宏工具条
给Visual Studio添加一个工具条,工具条中实现两个功能(有两个按钮):1,插入分割线(简单);2,添加文件注释(复杂)。来说明本文:给Visual Studio 添加宏工具条1) 打开VisualStudio的宏管理器:工具-宏-Macros资源管理器,点击【宏】,右键新建宏项目(名字为MyMacros),完成后,右键点击【MyMacros】-新建模块,名字为:Co原创 2013-02-22 17:47:42 · 1853 阅读 · 0 评论 -
C#中base两种用法
1、调用基类中的重名方法 public class Person { protected string ssn = "444-55-6666"; protected string name = "John L. Malgraine"; public virtual void GetInfo() {原创 2012-08-07 09:08:00 · 1712 阅读 · 0 评论 -
c#中(int)、int.Parse()、int.TryParse、Convert.ToInt32的区别
以前经常为这几种数据类型转换方式而迷茫,这次为了彻底搞清它们之间的区别和优缺点,在网上查看了一些资料,并亲自验证了一下,在此写出来,一方面,为那些跟我有过相似经历的朋友们些许,另一方面,希望前辈们指导一下,看哪里有不合适的地方。1 (int)变量名[强制类型转换]: 该转换方式主要用于数字类型转换,从int类型到long,float,double,decimal类型,可以使用隐式转转载 2012-08-09 09:17:54 · 871 阅读 · 0 评论 -
在DataTable中查找
1. 使用Select方法查找没有主键的表DataTable的Select方法返回一个DataRow数组,有四个重载的函数。DataView prodView = new DataView(prodDS.Tables["Products"], "UnitsInStock转载 2012-08-11 13:41:48 · 1969 阅读 · 0 评论 -
使用弱DataSet进行Oracle增删该查
利用scott/tiger下的数据库salgrade,表事先进行了修改,增加了主键,增加了字符型的列testusing (OracleConnection con = new OracleConnection(Properties.Settings.Default.ConnectionString)) { con.Open();原创 2012-08-11 13:46:21 · 1148 阅读 · 0 评论 -
Typed DataSet强类型Oracle的delete,update,insert
1.DELETE FROM "SALGRADE" WHERE id = :id2.INSERT INTO "SALGRADE" ("GRADE", "ID", "TEST") VALUES (:GRADE, :ID, :TEST)3.UPDATE "SALGRADE" SET "GRADE" = :GRADE, "TEST"= :TEST where "ID" = :ID具体实现代码原创 2012-08-11 13:57:52 · 1434 阅读 · 0 评论 -
C#如何给自定义控件添加说明(解释)
网上有很多如何自定义控件的东西,但是怎么添加说明的却很少,这里给出。原创 2012-08-16 09:52:22 · 1509 阅读 · 1 评论 -
C# TreeView 磁盘文件,资源管理器,AfterSelect,显示加号
可以看到,项的前面都显示了加号(+),而且读取了磁盘的文件。代码如下主程序代码:using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;原创 2012-08-30 11:20:02 · 4147 阅读 · 1 评论 -
C#中如何使用FindWindow来查找Word,计算器,Notepad等软件
别忘了添加引用using System.Runtime.InteropServices;直接添加代码:using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;usin原创 2012-08-24 18:33:25 · 4815 阅读 · 0 评论 -
C#中如何实现数据拖动?(拖动图片,到TextBox,并显示)
代码: using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;using System.IO;name原创 2012-08-24 18:58:18 · 3074 阅读 · 0 评论 -
C# 画坐标,graphics,C# 坐标自定义X轴、Y轴
先看效果:其中X轴,Y轴都是可以自定义的,可以从零开始,也可以从任意位置开始。看坐标的画法:,下面通过五个函数,来分别说明,注意这里坐标的定位是通过外层的Panel来实现的。using System;using System.Collections.Generic;using System.Text;using System.Windows.Forms;using Sy原创 2012-08-27 21:08:02 · 36214 阅读 · 4 评论 -
net 连接oracle的几种方式
1、OracleClient方式,是微软专门针对Oracle数据库开发的,仅在 .NET Framework 1.1 版中受支持。据说速度快、性能好,是推荐使用的方式。但根据我的经验,当Oracle数据库服务器端采用英文字符集比如 US7ASCII 时,客户端不管字符集如何设置,读出的中文都是乱码;若服务器端用中文字符集比如 ZHS16GBK ,则无乱码问题。 引用类库:System.Dat转载 2012-09-06 09:33:11 · 2032 阅读 · 0 评论 -
金融总结十 上交所和深交所的集合竞价
刚才看到了百度百科的集合竞价发现有错误,这里纠正一下:所谓集合竞价,是指对在规定的一段时间内接受的买卖申报一次性集中撮合的竞价方式。根据我国证券交易所的相关规定,集合竞价确定成交价的原则为: 1.可实现最大成交量的价格。 2.高于该价格的买入申报与低于该价格的卖出申报全部成交的价格。 3.与该价格相同的买方或卖方至少有一方全部成交的价格。 如有两个以上申原创 2012-08-28 09:13:50 · 4515 阅读 · 0 评论 -
数据库,DataRow,对象,Object,串行,解串
一有时候需要将C#中某一个结构很复杂的类的对象存储起来,或者通过网路传输到远程的客户端程序中去, 这时候用文件方式或者数据库方式存储或者传送就比较麻烦了,这个时候,最好的办法就是使用串行和解串(Serialization & Deserialization)..NET中串行有三种,BinaryFormatter, SoapFormatter和XmlSerializer. 其中Bin原创 2012-09-07 09:14:59 · 1165 阅读 · 0 评论 -
C#、最简单、事件委托、订阅事件、订阅者模式
订阅者模式定义对象间的一种一对多的依赖关系,当一个主题对象的状态发生改变时, 所有监听它的观察者对象都得到通知并被自动更新。特点1.观察者只写出当事件发生时所要进行的处理2.发布者要有委托 delegate,事件 event 以及触发的函数下面通过最简单的两个窗体,主窗体发布、并触发事件,子窗体响应来实现一个最简单的订阅者模式: 注意:大部分代码都在发布者,观察者只需要原创 2012-12-10 22:01:07 · 4143 阅读 · 1 评论 -
如何在自定义控件里添加复杂属性(struct,class等)
class TestComponent2 : System.Windows.Forms.DateTimePicker { [TypeConverter(typeof(ExpandableObjectConverter))] public class Test { private int _A, _B;原创 2013-02-05 13:54:51 · 1536 阅读 · 0 评论 -
SQLite error,no such table的处理方法
由于程序的启动目录是你的/bin/Debug 目录,所以你如果将你的数据库 没有放到目录下的话,就会出现找不到表的情况!!但是为什么 不是找不到 数据库呢,这是因为程序在运行的时候,应该自动将数据库资源拷贝到相应的 /bin/Debug 目录下的呀,看图:这里你需要 将你的数据库在运行的时候 复制到生成目录,即可。(将不复制,改为其他项)。 多分享,多受益。我为人人,原创 2013-02-06 14:05:06 · 16084 阅读 · 0 评论 -
解决VS2010,Resharper快捷键不起作用的问题!
摸索出来的,希望对你的电脑有用。安装完Resharper后的界面进入【工具】-【选项】-【键盘】按照步骤设置,设置成跟界面一样的效果开始Resharper的设置。设置快捷键的设置。设置智能提示。 注意:这个时候,在VS界面里面按下ALT+Enter的时候,会进行提示,提示你选择VS的键盘,还是Resharper的,一定要选择Resharper原创 2013-11-27 09:23:01 · 10569 阅读 · 3 评论