溫馨提示×

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

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

C#怎么創(chuàng)建自定義控件及添加自定義屬性和事件

發(fā)布時(shí)間:2020-07-23 17:15:59 來源:億速云 閱讀:589 作者:小豬 欄目:編程語言

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

前言

C#本身提供了很強(qiáng)大的控件庫,但是很多控件庫的功能只是一些基本的功能,就比如最簡(jiǎn)單的按鈕,C#提供了最基礎(chǔ)的按鈕使用方法,但是如果要增加一些功能,比如按鈕按下要一個(gè)圖片,彈起要另一個(gè)圖片這樣的工作。當(dāng)然,我們可以對(duì)相關(guān)按鈕在點(diǎn)擊函數(shù)中進(jìn)行更改其背景圖片,但是這對(duì)于大量的按鈕調(diào)用來說十分不方便,代碼重用率相當(dāng)?shù)母?,?huì)導(dǎo)致使用上的卡頓,在這種情況下,我們可以將這個(gè)功能封裝起來,這樣每次調(diào)用起來就很方便,也節(jié)省了代碼的重用率。

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

首先先建立一個(gè)用戶類庫:

C#怎么創(chuàng)建自定義控件及添加自定義屬性和事件       

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

C#怎么創(chuàng)建自定義控件及添加自定義屬性和事件

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

C#怎么創(chuàng)建自定義控件及添加自定義屬性和事件

然后需要添加新的屬性供新的控件使用,這里我們添加四個(gè)屬性:1、按鈕按下的圖片 2、按鈕開啟時(shí)的圖片 3、按鈕關(guān)閉時(shí)的圖片 4、該按鈕是單次點(diǎn)擊型還是開光狀態(tài)型的模式選擇。

C#怎么創(chuàng)建自定義控件及添加自定義屬性和事件

在該部分,首先需要定義存儲(chǔ)默認(rèn)狀態(tài)的量,如上圖所示,存儲(chǔ)各個(gè)圖片的默認(rèn)值為null。Description參數(shù)為屬性的說明注釋,Category屬性為當(dāng)前該屬性所屬的類,下面定義的函數(shù)為將用戶選擇的參數(shù)進(jìn)行返回和獲取的一個(gè)過程,用戶定義的屬性名即函數(shù)名。

函數(shù)體為常見的{get;set;}形式:

C#怎么創(chuàng)建自定義控件及添加自定義屬性和事件

該部分將用戶選擇的參數(shù)賦值給之前定義的圖片文件,至此為止屬性已經(jīng)簡(jiǎn)單的添加完畢,如將該文件編譯得到的dll文件導(dǎo)入庫中進(jìn)行使用,我們會(huì)發(fā)現(xiàn),拖出來的按鈕控件下面已經(jīng)多了上面定義的所有屬性。

C#怎么創(chuàng)建自定義控件及添加自定義屬性和事件       

但是這些屬性還并沒有用,只是簡(jiǎn)單的進(jìn)行了賦值,要讓這些屬性進(jìn)行動(dòng)作,需要在按鈕中添加新的事件。這里我們添加了兩個(gè)事件,一個(gè)是鼠標(biāo)按下的事件,還有一個(gè)鼠標(biāo)彈起的按鍵:

C#怎么創(chuàng)建自定義控件及添加自定義屬性和事件

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

添加的新的事件中,我們需要對(duì)按鈕的相應(yīng)動(dòng)作進(jìn)行相應(yīng),在按下時(shí)獲得按下時(shí)的圖片,在彈起時(shí)獲得彈起時(shí)的圖片即可。

C#怎么創(chuàng)建自定義控件及添加自定義屬性和事件

C#怎么創(chuàng)建自定義控件及添加自定義屬性和事件

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

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

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

C#怎么創(chuàng)建自定義控件及添加自定義屬性和事件

這是一個(gè)帶按下動(dòng)畫的按鈕。

C#怎么創(chuàng)建自定義控件及添加自定義屬性和事件

這是一個(gè)不帶按下動(dòng)畫的按鈕。

C#怎么創(chuàng)建自定義控件及添加自定義屬性和事件

這是一個(gè)單次點(diǎn)擊的按鈕。

以上就是關(guān)于C#怎么創(chuàng)建自定義控件及添加自定義屬性和事件的內(nèi)容,如果你們有學(xué)習(xí)到知識(shí)或者技能,可以把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI