自己動手用c#寫控制元件(上) (轉)
自己動手用寫:namespace prefix = o ns = "urn:schemas--com::office" />
willsound(willsound@163.com)
關鍵詞
c#,,控制元件,GDI+
我平時比較喜歡使用,小生不才,我隨然喜歡delphi,平時開發(至少現在)多用delphi,但是不怕各位高手,我沒有用delphi寫過控制元件,雖然原理上知道,但總感覺不知無從下手:L
但是自從接觸了c#,她哪優美的身姿(程式碼風格),風騷而不放縱的性格(對面向的體現比較好,要比delphi強),深深打動了我。經過一段時間的操練,我發現在開發控制元件及上(別的方面,小生我不敢妄斷),其簡便性真令我耳目一新。怎麼樣,試一把吧.J
對了,我的開發平臺是 2000 server+.vs.net 正式版
我所實現的這個控制元件,是從窗體控制元件Button繼乘的,能夠實現漸變背景,實現圖案及紋理填充文字.
好了,我們開在開始吧
1 首先打個vs.net
2在“”選單中,指向“新建”,然後選擇“專案”以開啟“新建專案”對話方塊。從“C# 專案”列表中選擇“Windows 控制元件庫”專案模板,然後在“名稱”框中鍵入LinearGradientButtonLib,然後點確定。
3 在解決方案中,右擊 UserControl1.cs,並從快捷選單中選擇“檢視程式碼”。
4 找到 class 語句 public class UserControl1
,將 UserControl1 更改為 LinearGradientButton以更改元件的名稱。找到構造 public UserControl1()
,將它更改為 public
LinearGradientButton ()
。
5 在 Class 語句,將該控制元件從 System.Windows.Forms.UserControl 繼承的型別更改為 System.Windows.Forms.Button。這允許繼承的控制元件繼承 Button 控制元件的所有功能。
6 在解決方案資源管理器中,單擊 UserControl1.cs,並在“屬性”視窗中,將 FileName 屬性更改為LinearGradientButton.cs.
好了,到現在工作就告一段落了,下面的工作,是向我們們的控制元件新增屬性了。喝口水,繼續!
先加上名字空間using System.Drawing.Drawing2D;
1找到 class 語句。在緊靠 { 的後面鍵入下面的程式碼:
private Color froColor; //漸變前景色
private Color backColor;//漸變背景色
private bool isUseFloat;//是否使用角度轉變
private float angle; //放置角度
private LinearGradientMode mode;//設定漸變的角度
private HatchStyle hatchStyle; //設定文字的填充圖案
private bool isUseStyle;//設定是否用圖案填充圖案
上面這些是我們控制元件需要的私有域,下面開始為每個私有域做它們對應的屬性.在以上程式碼的下面,寫入以下程式碼:
[Description("設定按鈕漸變的前景色"),Category("Appearance")]
public Color FrontColor
{
get
{
return froColor;
}
set
{
froColor=value;
}
}
[Description("設定按鈕漸變的背景色"),Category("Appearance")]
public Color BackGroundColor
{
get
{
return backColor;
}
set
{
backColor=value;
}
}
[DefaultValue(false),Description("設定是否人工設定角度")]
public bool UseFloat
{
get
{
return isUseFloat;
}
set
{
isUseFloat=value;
}
}
[DefaultValue(false),Description("設定是否使用圖案填充文字")]
public bool UseStyle
{
get
{
return isUseStyle;
}
set
{
isUseStyle=value;
}
}
[DefaultValue(0),Description("定義漸變方向的角度,以度為單位從 X 軸順時針測量。 "),Category("Appearance")]
public float Angle
{
get
{
return angle;
}
set
{
angle=value;
}
}
[DefaultValue(0),Description("當UseFloat設為false時,設定漸變方向。 "),Category("Appearance")]
public LinearGradientMode Mode
{
get
{
return mode;
}
set
{
mode=value;
}
}
[DefaultValue(false),Description("設定文字要填充的圖案"),Category("Appearance")]
public HatchStyle FillStyle
{
get
{
return hatchStyle;
}
set
{
hatchStyle=value;
}
}
好了,我們將控制元件的屬性設計好了,下面就要我們寫事件了.
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-991589/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 自己動手用c#寫控制元件(下) (轉)C#控制元件
- 嘗試自己動手用react來寫一個分頁元件React元件
- 自己動手寫RecyclerView的上拉載入View
- C#常用控制元件縮寫C#控制元件
- iOS開發之將自己寫的小控制元件釋出到Github上iOS控制元件Github
- C# 容器上控制元件排序C#控制元件排序
- 自己動手寫Web自動化測試框架(3):操縱Web控制元件Web框架控制元件
- 自己動手寫Web自動化測試框架(4):驗證Web控制元件Web框架控制元件
- 自己動手寫PromisePromise
- C# Winform常用控制元件縮寫大全C#ORM控制元件
- 分享一個自己寫的C# SqlHelperC#SQL
- 開發自己的Excell控制元件 (轉)Excel控制元件
- 徒手用 Docker 構建自己的 PHP 開發環境DockerPHP開發環境
- 自己編寫JAVA環境下的檔案上傳元件 (轉)Java元件
- 自己動手寫類似酷狗播放器(3)_Slider控制元件使用播放器IDE控制元件
- 徒手用 Go 寫個 Redis 伺服器(Godis)GoRedis伺服器
- C#實現控制元件陣列 (轉)C#控制元件陣列
- 自己動手寫一個 SimpleVueVue
- 自己動手寫 PHP 框架(一)PHP框架
- C#自定義控制元件—流動管道C#控制元件
- 動態移動控制元件 (轉)控制元件
- 新手用不起,高手看不上系列之--MVVMHabitMVVM
- C#自定義控制元件—轉換開關C#控制元件
- C#自定義控制元件—旋轉按鈕C#控制元件
- 自己動手寫SQL執行引擎SQL
- 寫給自己的分塊上傳檔案
- 自己編寫安裝製作程式 (轉)
- C#控制元件C#控制元件
- 自己動手寫Web自動化測試框架Web框架
- 自己動手寫basic直譯器 一
- 自己動手寫事件匯流排(EventBus)事件
- 自己動手寫一個持久層框架框架
- 自己動手寫Vector【Cherno C++教程】C++
- C# toolstrip 上新增DateTimePicker Control控制元件C#控制元件
- 自己動手寫Android資料庫框架Android資料庫框架
- WPF啟動流程-自己手寫Main函式AI函式
- 自己動手寫個 Android客戶端Android客戶端
- 自己動手寫RecyclerView的下拉重新整理View