簡介
Windows
窗體可用於設計窗體和可視控制項,以創建豐富的基於Windows的應用程式。提供了一套豐富的控制項,並且開發人員可以定義自己有特色的新的控制項。
WinForm控制項是指以輸入或運算元據的對象。比如ComponentOne是.net平台下對數據和方法的封裝。有自己的屬性和方法。屬性是控制項數據的簡單訪問者。方法則是控制項的一些簡單而可見的功能。包含在 .NET Framework 中的 Windows
窗體類旨在用於 GUI 開發。您可以輕鬆創建具有適應多變的商業需求所需的靈活性的命令視窗、按鈕、選單、工具列和其他螢幕元素。
方便的數據顯示和操作:應用程式開發中最常見的情形之一是在
窗體上顯示數據。Windows
窗體對資料庫處理提供全面支持。可以訪問資料庫中的數據,並在
窗體上顯示和運算元據。
特點和分類
基本特徵
1.可視化。
2.可以與用戶進行互動,比如通過鍵盤和滑鼠。
3.暴露出一組屬性和方法供開發人員使用。
4.暴露出一組事件供開發人員使用。
5.控制項屬性的可持久化。
6.可發布和可重用。
類型
WinForm控制項並不是很複雜,.NET為我們提供了豐富的底層支持。如果有MFC或者API圖形界面的開發心得,那么學會WinForm控制項可能只需要很短的時間就夠了。 自己開發的WinForm控制項通常有三種類型:複合控制項(Composite Controls),擴展控制項(Extended Controls),自定義控制項(Custom Controls)。
複合控制項:將現有的各種控制項組合起來,形成一個新的控制項,將集中控制項的性能集中起來。
擴展控制項:在現有控制項的控制項的入門上派生出一個新的控制項,為原有控制項增加新的性能或者更改原有控制項的控能。
自定義控制項:直接從System.windows.Forms.Control類派生出來。Control類提供控制項所需要的所有入門性能,包括鍵盤和滑鼠的事件處理。自定義控制項是最靈活最強大的辦法,但是對開發者的要求也比較高,你必須為Control類的OnPaint事件寫原始碼,你也可以重寫Control類的WndProc辦法,處理更底層的作windows訊息,所以你應該學習GDI+和作windows API。
分類
1. 容器類:form,comboBox,Panel等等
2. 具有用戶界面的控制項:出現在窗體中,運行時可見,比如button,label,textbox等等
3. 沒有用戶界面的控制項:在後台提供一些功能。比如toolTip
常用的控制項
用戶界面控制項
用於開發構建用戶界面(
UI)的控制項,幫助完成軟體開發中視窗、文本框、按鈕、下拉式選單等界面元素的開發。
圖表控制項
用於開發圖表的控制項,幫助軟體實現數據可視化,實現開發時較難獨立完成的複雜圖表。
代表:ComponentOne Studio Chart for WinForm
報表控制項
用與開發報表的控制項,在軟體中實現報表的瀏覽查看、設計、編輯、列印等功能。
表格控制項
專門用於開發表格(CELL)的控制項,主要實現格線中數據處理和操作的功能。
代表:FlexGrid、Spread等
控制項開發
Windows 窗體控制項是從 System.Windows.Forms.Control 直接或間接派生的類。Windows 窗體控制項的基類 System.Windows.Forms.Control 為客戶端 Windows 應用程式中的外觀顯示提供了所需的途徑。Control 提供了一個視窗句柄,用來處理訊息路由並提供滑鼠和鍵盤事件及許多其他用戶界面事件。還提供了高級布局,並具有用於外觀顯示的特定屬性,如 ForeColor、BackColor、Height、Width 和許多其他屬性。此外,它還提供了安全性、執行緒支持以及與 ActiveX 控制項的互動性。由於基類提供了很多基礎結構,使得開發自己的 Windows 窗體控制項變得相對簡單。
創建控制項就是自行設計製作出新的控制項。
設計控制項是一項艱苦的工作。對於控制項的開發者,控制項是純粹的
代碼。實際上,創建新控制項使我們回到傳統開發工具的時代。雖然這是一個複雜的
過程,但也是一個一勞永逸的過程。
創建控制項的最大意義在於封裝重複的工作,其次是可以擴充現有控制項的功能。
控制項創建
過程包括設計、開發、調試(就是所謂的3Ds開發流程,即Design、Develop、Debug)工作, 然後是控制項的使用。
控制項開發者應該掌握的三項主要內容是:屬性、事件和方法。
由於控制項開發複雜度較高, 很多專業第三方控制項繼承自.NET中的某些基類,重寫或者拓展了一些方法和屬性,從而能實現某些新的功能,同時他們有較大的可定製性,可以根據使用者的需要設定不同的特性,從而完全適應特定項目的需求。常見的第三方控制項包括表格控制項、報表控制項、用戶界面控制項等。