資源描述:
《【幾個(gè)c#編程的小技巧】》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、【幾個(gè)C#編程的小技巧】思君如滿月,夜夜減清輝。天時(shí)不如地利,地利不如人和。山高自有客行路,水深自有渡船人。避其銳氣,擊其惰歸。五嶺逶迤騰細(xì)浪,烏蒙磅礴走泥丸?!編讉€(gè)C#編程的小技巧】[精品]一、最小化窗口點(diǎn)擊“X”或“Alt+F4”時(shí),最小化窗口,如:protectedoverridevoidWndProc(refMessagem){constintWM_SYSCOMMAND=0x0112;constintSC_CLOSE=0xF060;if(m.Msg==WM_SYSCOMMAND&&(int)m.WParam==SC_CLOSE){//Userclickedclo
2、sebuttonthis.WindowState=FormWindowState.Minimized;return;}base.WndProc(refm);}二、如何讓Foreach循環(huán)運(yùn)行的更快foreach是一個(gè)對(duì)集合中的元素進(jìn)行簡單的枚舉及處理的現(xiàn)成語句,用法如下例所示:usingSystem;usingSystem.Collections;namespaceLoopTest{classClass1{staticvoidMain(string[]args){//createanArrayListofstringsArrayListarray=newArrayLis
3、t();array.Add("Marty");array.Add("Bill");array.Add("George");//printthevalueofeveryitemforeach(stringiteminarray){Console.WriteLine(item);}}}你可以將foreach語句用在每個(gè)實(shí)現(xiàn)了Ienumerable接口的集合里。如果想了解更多foreach的用法,你可以查看.NETFrameworkSDK文檔中的C#LanguageSpecification。在編譯的時(shí)候,C#編輯器會(huì)對(duì)每一個(gè)foreach區(qū)域進(jìn)行轉(zhuǎn)換。IEnumerator
4、enumerator=array.GetEnumerator();try{stringitem;while(enumerator.MoveNext()){item=(string)enumerator.Current;Console.WriteLine(item);}}finally{IDisposabled=enumeratorasIDisposable;if(d!=null)d.Dispose();}這說明在后臺(tái),foreach的管理會(huì)給你的程序帶來一些增加系統(tǒng)開銷的額外代碼。三、將圖片保存到一個(gè)XML文件WinForm的資源文件中,將PictureBox的Imag
5、e屬性等非文字內(nèi)容都轉(zhuǎn)變成文本保存,這是通過序列化(Serialization)實(shí)現(xiàn)的,例子://usingSystem.Runtime.Serialization.Formatters.Soap;Streamstream=newFileStream("E:\Image.xml",FileMode.Create,FileAccess.Write,FileShare.None);SoapFormatterf=newSoapFormatter();Imageimg=Image.FromFile("E:\Image.bmp");f.Serialize(stream,img
6、);stream.Close();四、屏蔽CTRL-V在WinForm中的TextBox控件沒有辦法屏蔽CTRL-V的剪貼板粘貼動(dòng)作,如果需要一個(gè)輸入框,但是不希望用戶粘貼剪貼板的內(nèi)容,可以改用RichTextBox控件,并且在KeyDown中屏蔽掉CTRL-V鍵,例子:privatevoidrichTextBox1_KeyDown(objectsender,System.Windows.Forms.KeyEventArgse){if(e.Control&&e.KeyCode==Keys.V)e.Handled=true;}一、判斷文件或文件夾是否存在使用System.
7、IO.File,要檢查一個(gè)文件是否存在非常簡單:boolexist=System.IO.File.Exists(fileName);如果需要判斷目錄(文件夾)是否存在,可以使用System.IO.Directory:boolexist=System.IO.Directory.Exists(folderName);二、使用delegate類型設(shè)計(jì)自定義事件在C#編程中,除了Method和Property,任何Class都可以有自己的事件(Event)。定義和使用自定義事件的步驟如下:(1)在Class之外定義一個(gè)delegate類型,用于確