欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C#創(chuàng)建自定義控件及添加自定義屬性和事件使用實例詳解

 更新時間:2020年05月17日 10:52:52   作者:Im1smb  
這篇文章主要給大家介紹了關(guān)于C#創(chuàng)建自定義控件及添加自定義屬性和事件使用的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用C#具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧

前言

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

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

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

       

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

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

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

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

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

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

       

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

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

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

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

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

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

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

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

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

總結(jié)

到此這篇關(guān)于C#創(chuàng)建自定義控件及添加自定義屬性和事件使用的文章就介紹到這了,更多相關(guān)C#創(chuàng)建自定義控件及添加自定義屬性和事件使用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C#窗口實現(xiàn)定時關(guān)機系統(tǒng)

    C#窗口實現(xiàn)定時關(guān)機系統(tǒng)

    這篇文章主要為大家詳細介紹了C#窗口實現(xiàn)定時關(guān)機系統(tǒng),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-07-07
  • C#實現(xiàn)鼠標裁剪圖像功能

    C#實現(xiàn)鼠標裁剪圖像功能

    這篇文章主要為大家詳細介紹了C#實現(xiàn)鼠標裁剪圖像功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • 如何使用Dapper處理多個結(jié)果集與多重映射實例教程

    如何使用Dapper處理多個結(jié)果集與多重映射實例教程

    Dapper類是一個開源的數(shù)據(jù)庫操作類,下面這篇文章主要給大家介紹了關(guān)于如何使用Dapper處理多個結(jié)果集與多重映射的相關(guān)資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考借鑒,下面隨著小編來一起學習學習吧
    2018-09-09
  • C# dll代碼混淆加密的實現(xiàn)

    C# dll代碼混淆加密的實現(xiàn)

    本文主要介紹了C# dll代碼混淆加密的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-02-02
  • Unity實現(xiàn)俄羅斯方塊(一)

    Unity實現(xiàn)俄羅斯方塊(一)

    這篇文章主要介紹了Unity實現(xiàn)俄羅斯方塊的第一部分代碼,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-06-06
  • C#中實現(xiàn)查找mysql的安裝路徑

    C#中實現(xiàn)查找mysql的安裝路徑

    這篇文章主要介紹了C#中實現(xiàn)查找mysql的安裝路徑,本文講解使用SQL語句查詢出mysql的安裝路徑,方便在備份時使用,需要的朋友可以參考下
    2015-06-06
  • C#實現(xiàn)的Socket服務(wù)器端、客戶端代碼分享

    C#實現(xiàn)的Socket服務(wù)器端、客戶端代碼分享

    這篇文章主要介紹了C#實現(xiàn)的Socket服務(wù)器端、客戶端代碼分享,2個非常簡單的入門例子,需要的朋友可以參考下
    2014-08-08
  • Revit API取得變量的內(nèi)參名稱實例代碼

    Revit API取得變量的內(nèi)參名稱實例代碼

    這篇文章介紹了Revit API取得變量的內(nèi)參名稱實例代碼,有需要的朋友可以參考一下
    2013-11-11
  • C#實現(xiàn)逐行讀取和寫入文件的方法

    C#實現(xiàn)逐行讀取和寫入文件的方法

    這篇文章給大家介紹了使用C#語言實現(xiàn)同樣的功能,即從輸入文件中讀取每行數(shù)據(jù),然后將每行字段組合成SQL插入腳本,然后逐行寫入另外一個空白文件中,感興趣的朋友可以參考下
    2024-01-01
  • 詳解Asp.Net MVC的Bundle捆綁

    詳解Asp.Net MVC的Bundle捆綁

    這篇文章主要介紹了Asp.Net MVC的Bundle捆綁方法,具體實現(xiàn)方法給大家做代碼整理,一起參考一下。
    2017-11-11

最新評論