如何生成和使用自定義控制項

2021-05-04 00:37:32 字數 3060 閱讀 1799

譯者:

經常在論壇上有人問如果寫自己的控制項

,如何改造系統已經有的控制項

. 這篇文章對這個問題作了非常清楚的描述

. 這是在

codeproject

上頗受好評的一篇入門級的文章.

簡介

這篇文章簡明扼要的介紹了在

.net framework

中如何來產生自己的定製控制項.

我們講述如果產生乙個定製控制項

,然後在乙個應用程式中使用它

. 我在這個控制項中加入了自己的一些屬性

,我們可以看一下在

c#中是如果實現的.

生成控制項

在visual studio .net 中,

用windows

控制項庫來作為模板

,生成乙個新的專案

.專案的名稱為

ctlcutebutton.

首先麼做的就是要修改

cutebutton

的父類修改下面這行:

public class cutebutton : system.windows.forms.control 改為

: public class cutebutton : system.windows.forms.button

現在我們的控制項就是從

system.windows.forms.button

類來繼承了.

現在讓我們給這個控制項加一些屬性,在

cutebutton

類中加入下面的**就可以完成.

private color m_color1 = color.lightgreen;//

第一種顏色

private color m_color2 = color.darkblue;//

第二種顏色

private int m_color1transparent = 64; //

第一種顏色的透明度

private int m_color2transparent = 64; //

第二種顏色的透明度

set }

public color cutecolor2

set }

public int cutetransparent1

set }

public int cutetransparent2

set }

上面的invalidate()

方法是用來在設計和使用時用來重新整理控制項的內部.

重寫父類的

paint

事件// calling the base class onpaint

base.onpaint(pe);

// create two semi-transparent colors

color c1 = color.fromargb(m_color1transparent , m_color1);

color c2 = color.fromargb(m_color2transparent , m_color2);

brush b = new system.drawing.drawing2d.lineargradientbrush(clientrectangle,

c1, c2, 10);

pe.graphics.fillrectangle (b, clientrectangle);

b.dispose();

現在我們可以編譯這控制項了

,可以使用快捷鍵

++.下面是全部的**:

using system;

using system.collections;

using system.componentmodel;

using system.drawing;

using system.data;

using system.windows.forms;

namespace ctlcutebutton

set }

public color cutecolor2

set }

public int cutetransparent1

set }

public int cutetransparent2

set }

public cutebutton()

protected override void onpaint(painteventargs pe)

} }

如何來使用你的控制項

開啟vs.net,

用winows

應用程式模板來產生乙個新的專案

.在新的專案中

,你可以把上面編譯過的控制項新增到工具箱中

. 在工具箱中,右鍵

,定製工具箱

,然後新增

.net控制項,

然後瀏覽

,選中控制項的

dll檔案

(在我們的例子中

,這個檔案是

ctlcutebutton/bin/debug/cutebutton.dll

).這是cutebutton控制項就會出現在工具箱中

.你可以嘗試改變控制項的一些屬性,比如

cutecolor1

, cutecolor2

, cutetransparent1

, cutetransparent2.

現在,你就完全知道如果開發和使用自定義控制項了吧

.祝你好運.

作者blog:http://blog.csdn.net/theares/

如何自定義控制項

1 自定義屬性的宣告與獲取 1.1分析需要的自定義屬性 1.2在res values attrs.xml中定義自定義屬性 1.3在layout的xml檔案中宣告使用 1.4在自定義view中的構造方法中獲取使用 2 測量onmeasure 2.1求出子檢視的個數 通過getchildcount 方法...

如何使用xib來自定義控制項

1,如何封裝乙個模型 1.1,建立cocoa檔案,在.h檔案中定義物件的屬性,並宣告物件構造方法和類的構造方法 1.2,在.m檔案中實現.h檔案中宣告的方法 2,如何使用xib檔案自定義元件,such自定義cell 2.1,建立xib檔案,並設計好自己想要的元件效果。2.2,給xib的class屬性...

C 自定義控制項和自定義事件

今天在專案開發的過程中,因為好幾個頁面都要用到同乙個分類控制項,就想著把它做成乙個自定義控制項,然後隨託隨用。在網上找了些列子,自定義控制項的寫法不用多說,主要說一下,如何將控制項的事件,封裝到自己定義的控制項的自定義事件裡面。這裡同時也當作對自定義事件的乙個複習吧。首先控制項是乙個由treelis...