C 程式設計學習38 自定義控制項 組合控制項

2021-09-30 01:29:47 字數 3125 閱讀 4190

目錄

1 新建自定義控制項工程

1.1 工程建立

1.2 透明背景

1.3 新增自定義屬性

1.4 性別判定控制項**

2 自定義控制項選擇需要的隨機字串

2.1 自定義控制項**

2.2 彈出的窗體**

2.3 效果展示

//prop tab自定義生成屬性

[browsable(true)]//表示該屬性會顯示在屬性視窗中

//description 指定屬性或事件的說明

//category 自定義屬性的分組名稱

//defaultvalue 指定屬性的預設值,預設值不加粗,非預設值會加粗

[description("預設選中的核取方塊,int型,索引從0開始,0是代表第乙個核取方塊"),category("自定義屬性"), defaultvalue(-1)]

public int checkindex

private void usercontrol1_load(object sender, eventargs e)

else if (checkindex == 1)

else

}private void checkboxwoman_checkedchanged(object sender, eventargs e)

else

}private void checkboxman_checkedchanged(object sender, eventargs e)

else}}

}新建自定義控制項:拖入乙個textbox和乙個button

新建名稱為frmpop的窗體,在窗體中拖入listbox控制項,dock屬性設定為fill

using system;

using system.collections.generic;

using system.componentmodel;

using system.drawing;

using system.data;

using system.linq;

using system.text;

using system.windows.forms;

namespace ***control

[browsable(true)]//表示該屬性會顯示在屬性視窗中

[description("設定顯示窗體的寬度"), category("自定義屬性"), defaultvalue(30)]

public int popwidth

[description("設定顯示窗體的高度"), category("自定義屬性"), defaultvalue(60)]

public int popheight

[description("設定顯示窗體的文字"), category("自定義屬性"), defaultvalue("")]

public string poptext

private void btnok_click(object sender, eventargs e)}}

using system;

using system.collections.generic;

using system.componentmodel;

using system.data;

using system.drawing;

using system.linq;

using system.text;

using system.windows.forms;

namespace ***control

private void frmpop_load(object sender, eventargs e)

}private void listboxguid_doubleclick(object sender, eventargs e)}}

介面:

執行:雙擊窗體中隨機字串,窗體關閉同時,會顯示在自定義控制項的文字框中

亮點及要點

附註: 靜態與非靜態

靜態類與非靜態類的重要區別在於靜態類不能例項化,也就是說,不能使用 new 關鍵字建立靜態類型別的變數。

在宣告乙個類時使用static關鍵字,具有兩個方面的意義:

靜態類中只能定義靜態成員【屬性或方法】,不能定義例項成員;密封的

使用的時候只能是根據類名呼叫,不能使用 new 關鍵字

非靜態中可以宣告靜態類成員,使用的時候就用類名呼叫;其他成員需要例項化之後再使用。

應用場景:

乙個類的成員和它所在的類的例項化物件無關,不依賴 new 的例項;不需要物件導向的開發,如dbhelp和資料庫通訊

高併發情形下,靜態成員可能出錯

生存週期:

靜態成員從程式啟動執行到類檔案,一直到程式關閉一直存在;非靜態只是在例項化才開始例項化

靜態記憶體是整塊的,非靜態的記憶體是破碎的

r參考資料

c#超越菜鳥第九課:靜態與非靜態

自定義組合控制項

package com.example.horimagedemo import android.content.context import android.util.attributeset import android.widget.relativelayout public class set...

自定義組合控制項

mainactivitycustomtitlebar import android.content.context import android.util.attributeset import android.view.layoutinflater import android.widget.bu...

Android自定義控制項之自定義組合控制項(三)

前兩篇介紹了自定義控制項的基礎原理android自定義控制項之基本原理 一 自定義屬性android自定義控制項之自定義屬性 二 今天重點介紹一下如何通過自定義組合控制項來提高布局的復用,降低開發成本,以及維護成本。1.第一種方式 直接在每個xml布局中寫相同的標題欄布局 這種方式沒有任何布局復用的...