gui代碼是事件驅動代碼。兩種gui應用:WInForms 和 WebForms.編程
事件驅動:用戶我的行爲都被封裝在不少事件中,事件由操做系統來安排順序執行。windows
事件處理:事件被handler處理 設計模式
通常來講,這些處理器方法的代碼是卸載可視化界面的後面。多線程
.NET 自動處理事件並生成一些基礎的調用事件處理器的代碼。ui
事件映射:經過委託。編碼
事件處理器參數:操作系統
兩個參數: Sender: 表示哪一個對象生成了事件線程
EventArgs: 例外的特定事件信息設計
通用驗證方法:通用文本框驗證方法。3d
通常事件處理器
容許把多個事件映射到同一個處理器
動態映射
處理器能夠在運行時動態增長或移除映射(+=和-=)
事件處理器總結
你能夠「多對一」進行事件處理:不一樣的事件對應到相同的處理程序。
你也能夠「一對多」進行事件處理:一個事件觸發能夠有多個動做。
WinForms
WinForms = .NET桌面GUI
使用 WinForms Application模板創建
實現
定義在system.windows.forms 名域
forms 從S.W.F.Form類繼承行爲
用法(很像VB6)
相同的體系:控件,屬性,事件
相同的控件組:文本框,按鈕,下拉框
強調簡單實施:拖拉,放,編碼
改進:
徹底面向對象並能夠跨語言通用
有一些更強大的控件(DataGrid)
對於數據綁定有更好的支持
更好的resizing 支持(Anchor controls; AutoScroll form)
good-bye twips, hello pixels
啓動Form
在VS中生成Main代碼中自動實例化一個From的對象
Application.Run(new form1())
Best Practice
1.把Main 方法移出 From Class.
Main更容易找到(不要成爲gui的一部分)
Main頗有可能還有其餘的職責,這些職責與GUI沒有關係。
通常使用App看成類名
2.通常啓動時的通用異常處理
一般異常處理器
最簡單的處理是日誌而後終止程序
3.使用try-catch來捕獲異常
WinForms 編程
WinForms 程序設計是一個很大的領域:
1.使用控件
2.創建自定義控件
3.多線程
4.MWC設計模式
.......
多Form應用程序例子
輸入customer id(從一個窗體調用另外一個窗體)
創建,展示
驗證輸入
數據綁定
1.控件能夠綁定數據源來得到數據
控件能夠綁定整個集合collections
控件能夠綁定單個對象屬性
2.數據綁定在.NET中是普遍使用的
自動地reads & writes 綁定的數據
例子:
數據綁定在list上: