知识大全 七个C#编程的小技巧
Posted 事件
篇首语:桃李不言,下自成蹊。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 七个C#编程的小技巧相关的知识,希望对你有一定的参考价值。
七个C#编程的小技巧 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
一 最小化窗口
点击 X 或 Alt+F 时 最小化窗口 如 protected override void WndProc(ref Message m) const int WM_SYSMAND = x ; const int SC_CLOSE = xF ; if (m Msg == WM_SYSMAND && (int) m WParam == SC_CLOSE) // User clicked close button this WindowState = FormWindowState Minimized; return; base WndProc(ref m);
二 如何让Foreach 循环运行的更快 foreach是一个对集合中的元素进行简单的枚举及处理的现成语句 用法如下例所示 using System; using System Collections; namespace LoopTest class Class static void Main(string[] args) // create an ArrayList of strings ArrayList array = new ArrayList(); array Add( Marty ); array Add( Bill ); array Add( Gee ); // print the value of every item foreach (string item in array) Console WriteLine(item); 你可以将foreach语句用在每个实现了Ienumerable接口的集合里 如果想了解更多foreach的用法 你可以查看 NET Framework SDK文档中的C# Language Specification
在编译的时候 C#编辑器会对每一个foreach 区域进行转换 IEnumerator enumerator = array GetEnumerator(); try string item; while (enumerator MoveNext()) item = (string) enumerator Current; Console WriteLine(item); finally IDisposable d = enumerator as IDisposable; if (d != null) d Dispose(); 这说明在后台 foreach的管理会给你的程序带来一些增加系统开销的额外代码
三 将图片保存到一个XML文件 WinForm的资源文件中 将PictureBox的Image属性等非文字内容都转变成文本保存 这是通过序列化(Serialization)实现的 例子 using System Runtime Serialization Formatters Soap; Stream stream = new FileStream( E:\\\\Image xml FileMode Create FileAccess Write FileShare None); SoapFormatter f = new SoapFormatter(); Image img = Image FromFile( E:\\\\Image bmp ); f Serialize(stream img); stream Close();
四 屏蔽CTRL V 在WinForm中的TextBox控件没有办法屏蔽CTRL V的剪贴板粘贴动作 如果需要一个输入框 但是不希望用户粘贴剪贴板的内容 可以改用RichTextBox控件 并且在KeyDown中屏蔽掉CTRL V键 例子
private void richTextBox _KeyDown(object sender System Windows Forms KeyEventArgs e) if(e Control && e KeyCode==Keys V) e Handled = true;
五 判断文件或文件夹是否存在 使用System IO File 要检查一个文件是否存在非常简单 bool exist = System IO File Exists(fileName);
如果需要判断目录(文件夹)是否存在 可以使用System IO Directory bool exist = System IO Directory Exists(folderName);
六 使用delegate类型设计自定义事件 在C#编程中 除了Method和Property 任何Class都可以有自己的事件(Event) 定义和使用自定义事件的步骤如下 ( )在Class之外定义一个delegate类型 用于确定事件程序的接口 ( )在Class内部 声明一个public event变量 类型为上一步骤定义的delegate类型 ( )在某个Method或者Property内部某处 触发事件 ( )Client程序中使用+=操作符指定事件处理程序
例子 // 定义Delegate类型 约束事件程序的参数 public delegate void MyEventHandler(object sender long lineNumber) ; public class DataImports // 定义新事件NewLineRead public event MyEventHandler NewLineRead ; public void ImportData() long i = ; // 事件参数 while() i++ ; // 触发事件 if( NewLineRead != null ) NewLineRead(this i); // // //
// 以下为Client代码
private void CallMethod() // 声明Class变量 不需要WithEvents private DataImports _da = null; // 指定事件处理程序 _da NewLineRead += new MyEventHandler(this DA_EnterNewLine) ; // 调用Class方法 途中会触发事件 _da ImportData(); // 事件处理程序 private void DA_EnterNewLine(object sender long lineNumber) //
cha138/Article/program/net/201311/15559相关参考
几个C#编程的小技巧(下) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 一判断文件或文件夹是否
关于C#和.NET编程的小细节,你知道吗 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 在编程过
C#语言学习:C#数据报编程之测试程序 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! C#中自定
C#编程规范 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 一命名 用pascal规则来命名方
叩开C#之门系列之C#与面向对象编程语言 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! C#是纯
C#编程实现动态生成Word文档 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 如何用C#编程实
提高C#编程水平的50个要诀 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 提高C#编程水平的个
C#编程三步走之一 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! C#是微软NET架构的主力开发
用C#编程实现读写Binary 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 本文给出一个用C#
C#多线程编程实例 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 问题的提出 所谓单个写入程序