摘要: Win32的API函数是微软自己的东西,可以直接在C#中直接调用,在做WinForm时还是很有帮助的。有时候我们之直接调用Win32 的API,可以很高效的实现想要的效果。 代码 using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Runtime.InteropServices;namespace WindowsAPI{ class CSharp_Win32Api { #region User32.dll 函数 //... 阅读全文
posted @ 2012-01-15 08:56 希格绍尔 阅读(2847) 评论(1) 推荐(1) 编辑
摘要: int?:表示可空类型,就是一种特殊的值类型,它的值可以为null用于给变量设初值得时候,给变量(int类型)赋值为null,而不是0int??:用于判断并赋值,先判断当前变量是否为null,如果是就可以赋役个新值,否则跳过public int? a=null;public int b(){return this.a ?? 0;}值类型后面加问号表示可为空null(Nullable 结构)Nullable是.NET 2.0中新提供的一种用于标明一个值类型是否可以为空的技术。对于一个类型,如果既可以给它分配一个值,也可以给它分配空引用null(表示没有任何值),我们就说这个类型是可空的。因此,可 阅读全文
posted @ 2012-01-13 16:59 希格绍尔 阅读(22105) 评论(3) 推荐(5) 编辑
摘要: 我在上一篇文章(C#编程之委托与事件(一) )中通过示例结合的方法介绍了委托,在本文中,我同样以代码示例的方式来介绍C#里的事件机制。二、事件 1.了解概念 事件就是当对象或类状态发生改变时,对象或类发出的信息或通知。发出信息的对象或类称为"事件源",对事件进行处理的方法称为"接收者",通常事件源在发出状态改变信息时,它并不知道由哪个事件接收者来处理.这就需要一种管理机制来协调事件源和接收者,C++中通过函数指针来完成的.在C#中事件使用委托来为触发时将调用的方法提供类型安全的封装。 在介绍事件之前我们先来了解几个事件的基本概念和几个重要素: --事件的 阅读全文
posted @ 2012-01-12 10:38 希格绍尔 阅读(368) 评论(0) 推荐(0) 编辑
摘要: 多线程程序设计是一个庞大的主题,而本文试图在.net Framework环境下,使用C#语言来描述委托、事件、多线程程序及反射的概貌。希望本文能有助于大家理解委托、事件、多线程及反射的概念,理解委托、事件、多线程及反射的用途,理解它的C#实现方法,理解线程将为我们带来的好处和麻烦。C#是一种新的语言,因此它的线程机制也有许多独特的地方,希望大家能通过本文清楚地看到这些,从而可以对委托、事件、多线程等技术进行更深入的理解和探索。本文的重点内容:委托、事件、多线程、反射一. 委托委托的本质 --在C#中,委托是一个特殊的类; --在某种程度上,相当于C++的函数指针; --在某种程度上,相... 阅读全文
posted @ 2012-01-12 10:37 希格绍尔 阅读(331) 评论(0) 推荐(0) 编辑
摘要: 一、DataGridView 取得或者修改当前单元格的内容:当前单元格指的是 DataGridView 焦点所在的单元格,它可以通过 DataGridView 对象的 CurrentCell 属性取得。如果当前单元格不存在的时候,返回Nothing(C#是null)// 取得当前单元格内容Console.WriteLine(DataGridView1.CurrentCell.Value);// 取得当前单元格的列 IndexConsole.WriteLine(DataGridView1.CurrentCell.ColumnIndex);// 取得当前单元格的行 IndexConsole.W.. 阅读全文
posted @ 2012-01-12 09:39 希格绍尔 阅读(2410) 评论(1) 推荐(0) 编辑
摘要: 怎样利用DataSet向DataGridView中添加数据呢?很简单:编写添加按钮的单击事件方法示例代码:private void btnAdd_Click(object Sender,EventArgs e){ //创建DataSet对象 DataSet ds = new DataSet(); //创建DataTable对象 DataTable dt = new DataTable(); //创建列 dt.Columns.Add("姓名",typeof(string)); dt.Columns.Add("年龄",typeof(int)); //创建行 阅读全文
posted @ 2012-01-11 17:10 希格绍尔 阅读(7999) 评论(0) 推荐(0) 编辑