国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

c#自定義控件屬性面板及選擇資源設(shè)置

2019-11-14 14:04:43
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

因?yàn)橐隽黧w布局,但兩個(gè)控件沒(méi)辦法組合,就做自定義控件。這個(gè)控件需要一個(gè)text設(shè)置文本,一個(gè)pic設(shè)置圖片顯示,圖片通過(guò)選擇獲取,在屬性面板里能夠修改。

添加用戶控件之后就可以自己隨意設(shè)置控件內(nèi)容了,這里說(shuō)下關(guān)于屬性的一些設(shè)置。

  1. 自定義控件顯示在工具箱的開(kāi)關(guān):
    將true改為false就可以不顯示了。

    [ToolboxItem(true)]public partial class UserControl1 : UserControl

     

  2. 自定義控件在工具箱中的圖標(biāo)顯示:
    可以使用已有控件的圖標(biāo),
    1 [ToolboxBitmap(typeof(System.Windows.Forms.PictureBox))]2 public partial class UserControl1 : UserControl

    如果不想用系統(tǒng)的圖標(biāo),要使用自己的圖標(biāo),可以這樣(這部分未測(cè)試,源于參考文章)

    1 [ToolboxBitmap(typeof(MyPanel), "Windowsapplication1.Images.MyPanel.bmp")]2 public class MyPanel : UserControl

    不過(guò),一定要注意路徑,WindowsApplication1.Images.MyPanel.bmp表示,解決方案是WindowsApplication1,目錄是Images,文件名是MyPanel.bmp,同時(shí),這個(gè)圖片必須是“嵌入的資源”(點(diǎn)擊文件,右鍵,屬性,有一個(gè)文件屬性,其中,在生成操作中,可以選擇"嵌入的資源")


  3. 自定義控件在屬性面板上的顯示開(kāi)關(guān):
    1 [Browsable(true)]2 [Description("屬性描述"), Category("屬性類(lèi)別"), DefaultValue("屬性默認(rèn)值,重置時(shí)使用")]3 public override string Text4         {5             get { return label1.Text; }6             set { label1.Text = value; }7         }  

    category設(shè)定的是屬性在屬性面板上顯示的類(lèi)別,當(dāng)使用了類(lèi)別時(shí),組件屬性和事件可以按邏輯分組顯示在屬性瀏覽器中。Category("Appearance")就可以把屬性從雜項(xiàng)轉(zhuǎn)移到外觀。
    (摘抄自參考文章)用于設(shè)置默認(rèn)的值,對(duì)于string,bool,int,可以直接寫(xiě)出來(lái),如[DefaultValue(10)],這是可以的,不過(guò),不是這三種類(lèi)型的話,就比較麻煩,一定要先轉(zhuǎn)化為string才能設(shè)置成功。如上面的DarkGray,這是系統(tǒng)定義的顏色,這還是比較好處理的。不過(guò),如果是一些自定義的顏色,如顏色是128,0,128,你應(yīng)該將128轉(zhuǎn)為16進(jìn)制,寫(xiě)成0x800080,前綴0x是一定要加的。最后就這樣[DefaultValue(typeof(Color), "0x800080")]
    還有一種[DefaultValue(typeof(Color), "0, 70, 213")]
    如果是這兩種特殊情況三種方法本人均未測(cè)試。

  4. 自定義控件屬性選擇資源:
    如果自定義的屬性不是文本等輸入,是圖片之類(lèi)的就需要類(lèi)似于picturebox的資源選擇了,所以在設(shè)置屬性的時(shí)候使用文件類(lèi)型來(lái)定義,如選擇圖片的例下
     1 [Browsable(true)] 2 [Description("設(shè)置控件圖片"), Category("setPic"), DefaultValue(" ")] 3 public Bitmap setPic 4         { 5             get { return (Bitmap)this.pictureBox1.Image; } 6             set 7             { 8                this.pictureBox1.Image = value; 9             }10         }        

    這樣的話就會(huì)在屬性面板的設(shè)置中出現(xiàn)選擇資源的對(duì)話框來(lái)選擇。

  5. 自定義控件屬性選擇下拉列表:

    在定義屬性的時(shí)候需要先設(shè)置好枚舉值,通過(guò)枚舉來(lái)定義屬性,如例下

     1 public enum indexEnum 2         {  3             a, 4             b, 5             c 6         } 7 public indexEnum index; 8 [Browsable(true)] 9 [Description("設(shè)置index"), Category("Index"), DefaultValue("屬性默認(rèn)值")]10 public indexEnum Index11         {12             get { return index; }13             set { index = value; }14         }

     

附:

參考文章:常用Design屬性 【C#】媽媽再也不用擔(dān)心自定義控件如何給特殊類(lèi)型的屬性添加默認(rèn)值了,附自定義GroupBox一枚

 


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 长沙市| 乌兰县| 民权县| 闽清县| 鲜城| 宁国市| 鄂伦春自治旗| 北流市| 延寿县| 平江县| 敖汉旗| 蒙阴县| 浠水县| 社会| 科技| 阳春市| 广水市| 闽侯县| 曲水县| 长武县| 化州市| 大庆市| 大港区| 宁陕县| 浦东新区| 汝城县| 阿克陶县| 安庆市| 蓬安县| 周至县| 常熟市| 北辰区| 合阳县| 梁河县| 开鲁县| 周至县| 梨树县| 大方县| 静海县| 凤城市| 凌云县|