国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

自己動手用c#寫控件(上)

2024-07-21 02:27:08
字體:
來源:轉載
供稿:網友

關鍵詞

c#,.net,控件,gdi+

 

我平時比較喜歡使用delphi,小生不才,我隨然喜歡delphi,平時開發(至少現在)多用delphi,但是不怕各位高手笑話,我沒有用delphi寫過控件,雖然原理上知道,但總感覺不知無從下手:l

但是自從接觸了c#,她哪優美的身姿(代碼風格),風騷而不放縱的性格(對面向對象的體現比較好,要比delphi強),深深打動了我。經過一段時間的操練,我發現在開發控件及組件上(別的方面,小生我不敢妄斷),其簡便性真令我耳目一新。怎么樣,試一把吧.j

對了,我的開發平臺是windows 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;

              }

         }

好了,我們將控件的屬性設計好了,下面就要我們寫事件了.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 文登市| 岳阳市| 三明市| 军事| 眉山市| 奉贤区| 克拉玛依市| 盐城市| 阿拉善左旗| 香港| 宜丰县| 桃园县| 襄垣县| 华宁县| 河曲县| 沙湾县| 丰顺县| 宜宾县| 娄烦县| 汨罗市| 麻江县| 博客| 沁源县| 响水县| 婺源县| 苍南县| 禹州市| 巴青县| 南丰县| 南安市| 大田县| 文安县| 巴马| 栾川县| 顺平县| 长沙县| 富源县| 永登县| 潮安县| 新乡市| 杭锦旗|