軟件設計
根據功能需 求,本軟件設計如下
橢圓形按鈕是從UserControl 派生的一種自定義控件。
控件內部重寫OnPaint事件來繪制按鈕界面。
重寫OnMouseMove, OnMouseEnter,OnMouseLeave事件來實現按鈕的動態效果。
重寫OnClick事件來觸發 Click 事件。
軟件開發過程
經過簡單的設計,我們開始來開發這個軟件了。
新建C# WinForm.Net工程
打開VS.NET2003集成開發環境。新建立一個 C#WinForm.NET程序。客戶最終需要一個組件,但此處為了調試方便,開始使用WinForm.Net 應用程序工程模式,開發完畢後可以設置它為DLL工程模式提交給客戶。
要進行圖形 開發,C#工程必須引用 System.Drawing.dll,在新增WinForm.NET過程時,會自動添加該引 用,而新增其他類型的工程時可能不會默認添加該引用,此時需要手動添加該引用。圖形編 程需要頻繁引用System.Drawing名稱空間中的類型,因此在代碼的開頭需要添加 using System.Drawing ; 不過很多時候VS.Net會自動添加這個代碼,若不自動添加則需要手動添加 。
新增控件
新增一個名稱為EllipseButton 的用戶控件。
首先是定義 控件的一些屬性,主要有邊框色,按鈕背景色,鼠標懸浮時邊框色和按鈕背景色。
定 義一個鼠標懸停標志變量。 bool bolMouseHoverFlag = false ;
繪制控件用戶界面
重寫控件的OnPaint方法,繪制橢圓形按鈕,其代碼在演示程序中可以看到。在開發 自定義的控件時,可以相應控件的Paint事件,也可以重寫OnPaint方法,這裡為了代碼結構 簡單,此處重寫了OnPaint方法,在重寫該方法時一定要調用基類的 base.OnPaint 方法。
在重寫的OnPaint 方法中,具有一個類型為 PaintEventArgs 的參數,該參數有若干 個成員,其中最重要的就是Graphics成員和ClipRectangle成員,Graphics成員是圖形繪制對 象,可以看作一個空白的畫布,可以任意繪制圖形;ClipRectangle成員就是繪制區域剪切矩 形。
在C#圖形開發中,Graphics類型是最重要的類型,它表示一個畫布對象,任何圖 形操作都是輸出到這個畫布上。這個類型提供了很多屬性和方法,可以設置某些圖形輸出質 量,還提供了一系列的以Draw開頭的方法來繪制圖形,以Fill開頭的方法來填充圖形。此外 還提供方法和屬性進行坐標轉換。