Form的事件

http://tw.myblog.yahoo.com/jw!C0TkfHeAHxRFVrzGT.tKcQxxfIA-/article?mid=3415&prev=4986&l=f&fid=12

Initialize:
這是Form最先被觸發的事件,可別以為 Load 是第一個哦,Initialize才是第一個,會放在這個程式裡的程式碼大多是屬於要『亂搞型』,並不是真的要亂搞,可別誤會了哦,就是要搶在Form戴入前做的一些動作。
因為這時,Form真正的內容都還沒有讀取到記憶體內,所以Initialize可算是一個先頭部隊,先去處理掉一些麻煩的事,或是先建立起一個陣地,等待主力部隊的到來。

Terminate:
同樣的,別以為Unload是最後一個觸發的事件哦。
這算是和Initialize相反的一個事件,也是Form最一個會觸發的事件,簡單的說,這個事件裡的程式碼就是做收尾的工作,俗稱『收爛攤子』。

Load:
Form戴入到記體時會觸發的一個事件,這時包今在Form裡的所有一切都會讀取完成,所以在Form裡的程式碼才可以使用哦,有什麼要先執行的動作,就都可以寫在這裡。主力部隊到後,就要開始定布陣、安置人員,準備開始作戰了。

Unload:
這個和Load是個相反的事件,Form從記憶體中釋放時會產生的一個事件。這就好比主力部隊要離開時所做的一些動作都可以放在這個事件裡。

Activate:
一個系統中通常會有好幾個Form同時在執行,就拿您的電腦來說,你可能會開好幾個程式在用,或者開好幾個IE在看,有時會切換來切換去交互看,當您切換到要看的那一瞬間,Activate事件就會觸發,這就好比一個軍團裡有很多部隊,而司令指到某個部隊一瞬間,那個部隊的頭頭就一驚!!。

Deactivate
這個事件和Activate又是相反的,就是您要切換到另一個程式的一瞬間會觸發的事件。那個本來一驚的頭頭鬆了一口氣。

GotFocus:
這個事件是緊接著在Activate之後被觸發的,也最最常用的一個事件,大家常看到的變換滑鼠指標外型的程式碼有些是寫在這個事件裡。不過也可以寫在其他事件裡,這裡先不討論,因為有太多了。

LostFocus:
這個事件是GotFocus相反的事件,這個事件是在Deactivate事件之前發生的,滑鼠的指標外型要是有在GotFocus變動過,那在這裡就要還原到預設的,不然移到另一個程式時會怪怪怪的,當然也不一定要改回預設的,看程式的需求而定。

DragDrop:
這個事件是拖拉時會觸發的事件,當你把一個視窗拉到另一個位置時,這是最簡單的解釋。但是一個Form裡可以拖拉的東西非常多,只是大部分被設定成不能拖立。
把不要的檔案拉到垃圾桶時就會觸發這個事件,讓你可以把檔案拖動到垃圾桶,同時也可以寫入位置判斷的程式碼。

DragOver:
這個事件和DragDrop又是一個相反的事件,當拖拉動作完成放開時就會觸發這個事件,把檔案拉到垃圾桶放開時,檔案刪除的程式碼就可以寫在這個事件裡。

當一個Form正常狀態下執行 → 結束時就會依下列順序觸發以下的事件:(DragDrop、DragOver不列入)

Initialize → Load → Activate → GotFocus → LostFocus → Deactivate → Unload → Terminate

Delegate概念

委派是一種物件導向【函式指標】,讓您利用函式的參考來間接叫用 (Invoke) 函式。
你可以把他想像成一個電燈開關或遙控器,可以從遠端操控電器。
在呼叫程序與被呼叫程序之間需要媒介的情況下,委派相當有用。

例如,您可能要引發事件的物件能夠在不同的情況下呼叫不同的事件處理常式。
但可惜的是,引發事件的物件無法提前知道處理特定事件的是哪一個事件處理常式。

當您使用 AddHandler 陳述式時,藉由為您建立委派,Visual Basic .NET 讓您能夠動態建立事件處理常式與事件的關聯。
另一個用法則是程式之間Call back的用法。例如A物件有個函式Foo,B物件有個函式Bar,
當A物件呼叫B物件的Bar函數時,希望Bar執行完之後,回Call A物件的Foo函式。
簡單做法就是Bar函式裡面加上一段 A.Foo就可以了。但是如果B是一個服務元件,也就是很多的函式都會引用到他,
也就是 Bar無法預先知道將來回Call的是那一個函數,可能是A.Foo1, C.Foo2, D.Foo3,…,這時候delegate就很好用了。

以A為例,在呼叫B.Bar之前,先建立一個delegate,對應到A.Foo,相對的修改B.Bar的定義,加入一個delegate物件參數,
當A呼叫B.Bar時,將這個 delegate當作參數,傳送到B.Bar,Bar執行完,直接叫用這個delegate即可。
依此類推,每個呼叫B.Bar的物件不同,對應過來的delegate也不同,但對Bar來說,都是相同的做法。

Shared

沒有類別的明確執行個體,因此無法從共用方法或共用成員初始設定式中參考至類別的執行個體成員http://msdn2.microsoft.com/zh-tw/library/xfsswe45(vs.80).aspx

由使用 Visual Basic . NET 或 Visual Basic 2005 如何建立及使用共用成員
http://support.microsoft.com/kb/308371/zh-tw

為什麼VB.net的Shared(共享)方法在C#中叫Static(靜態)
http://zhenyulu.cnblogs.com/articles/385047.html

微軟認證技術專家 (MCTS)

http://www.microsoft.com/taiwan/learning/mcp/mcts/

目前有五種微軟認證技術專家 (MCTS) 認證。隨著新技術的誕生,也將會有新的認證提供。
五種認證包括:
* Technology Specialist: .NET Framework 2.0 Web Applications 技術專家
* Technology Specialist: .NET Framework 2.0 Windows Applications 技術專家
* Technology Specialist: .NET Framework 2.0 Distributed Applications 技術專家
* Technology Specialist: SQL Server 2005 技術專家
* Technology Specialist: BizTalk Server 2006 技術專家

目前70-536、70-528入手