目錄
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布局中寫相同的標題欄布局 這種方式沒有任何布局復用的...