中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C#怎么創建自定義控件及添加自定義屬性和事件

發布時間:2020-07-23 17:15:59 來源:億速云 閱讀:609 作者:小豬 欄目:編程語言

這篇文章主要為大家展示了C#怎么創建自定義控件及添加自定義屬性和事件,內容簡而易懂,希望大家可以學習一下,學習完之后肯定會有收獲的,下面讓小編帶大家一起來看看吧。

前言

C#本身提供了很強大的控件庫,但是很多控件庫的功能只是一些基本的功能,就比如最簡單的按鈕,C#提供了最基礎的按鈕使用方法,但是如果要增加一些功能,比如按鈕按下要一個圖片,彈起要另一個圖片這樣的工作。當然,我們可以對相關按鈕在點擊函數中進行更改其背景圖片,但是這對于大量的按鈕調用來說十分不方便,代碼重用率相當的高,會導致使用上的卡頓,在這種情況下,我們可以將這個功能封裝起來,這樣每次調用起來就很方便,也節省了代碼的重用率。

那么如何將上述的那么一個簡單的功能封裝起來呢,我們首先考慮到的便是按鍵的屬性,我們可以在相關按鍵中添加新的屬性來完成這一步操作。

首先先建立一個用戶類庫:

C#怎么創建自定義控件及添加自定義屬性和事件       

然后再該類庫下添加一個新的組件:

C#怎么創建自定義控件及添加自定義屬性和事件

在組件中我們需要首先繼承Button類

C#怎么創建自定義控件及添加自定義屬性和事件

然后需要添加新的屬性供新的控件使用,這里我們添加四個屬性:1、按鈕按下的圖片 2、按鈕開啟時的圖片 3、按鈕關閉時的圖片 4、該按鈕是單次點擊型還是開光狀態型的模式選擇。

C#怎么創建自定義控件及添加自定義屬性和事件

在該部分,首先需要定義存儲默認狀態的量,如上圖所示,存儲各個圖片的默認值為null。Description參數為屬性的說明注釋,Category屬性為當前該屬性所屬的類,下面定義的函數為將用戶選擇的參數進行返回和獲取的一個過程,用戶定義的屬性名即函數名。

函數體為常見的{get;set;}形式:

C#怎么創建自定義控件及添加自定義屬性和事件

該部分將用戶選擇的參數賦值給之前定義的圖片文件,至此為止屬性已經簡單的添加完畢,如將該文件編譯得到的dll文件導入庫中進行使用,我們會發現,拖出來的按鈕控件下面已經多了上面定義的所有屬性。

C#怎么創建自定義控件及添加自定義屬性和事件       

但是這些屬性還并沒有用,只是簡單的進行了賦值,要讓這些屬性進行動作,需要在按鈕中添加新的事件。這里我們添加了兩個事件,一個是鼠標按下的事件,還有一個鼠標彈起的按鍵:

C#怎么創建自定義控件及添加自定義屬性和事件

上面的部分就是簡單的一些按鈕屬性設置,比如將按鈕背景變透明之類的。

添加的新的事件中,我們需要對按鈕的相應動作進行相應,在按下時獲得按下時的圖片,在彈起時獲得彈起時的圖片即可。

C#怎么創建自定義控件及添加自定義屬性和事件

C#怎么創建自定義控件及添加自定義屬性和事件

這里buttonflag為定義的一個public變量,用戶可以在使用Click事件中判斷是否開啟成功,若沒有開啟成功可以將該變量置為原來的值,按鈕相應的也不會發生變化。

state用來判斷該按鈕是否是單次點擊的按鈕,如果是,那彈起時還是原來的圖片。有些按鍵沒有按下時的圖片,也不予變化。

至此為止,一個新的封裝已經制作完畢,將該文件編譯為dll并加載到工程中就能看到效果了,下面是測試效果圖:

C#怎么創建自定義控件及添加自定義屬性和事件

這是一個帶按下動畫的按鈕。

C#怎么創建自定義控件及添加自定義屬性和事件

這是一個不帶按下動畫的按鈕。

C#怎么創建自定義控件及添加自定義屬性和事件

這是一個單次點擊的按鈕。

以上就是關于C#怎么創建自定義控件及添加自定義屬性和事件的內容,如果你們有學習到知識或者技能,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

临城县| 南木林县| 布尔津县| 崇明县| 二连浩特市| 镇康县| 博罗县| 海宁市| 视频| 闽侯县| 剑阁县| 井陉县| 犍为县| 江城| 界首市| 翁源县| 宣威市| 福清市| 青海省| 福安市| 青阳县| 万年县| 缙云县| 临夏县| 顺平县| 临沭县| 昌图县| 扎赉特旗| 绥化市| 乌什县| 郸城县| 西华县| 瑞昌市| 柏乡县| 惠州市| 分宜县| 吉木乃县| 永城市| 韩城市| 绥滨县| 龙江县|