C#自定議一下簡單的控制項屬性

來源:互聯網
上載者:User
c#如何自定義控制項的屬性呢?我今天嘗試去自定義控制項屬性。
  
    設計自訂屬性的過程十分簡單,在設計屬性前只需要考慮以下幾個方面:

  • 使用屬性的目的是什麼?

    屬性可以以很多方式使用。你需要定義屬性到底要完成什麼功能並確保這些特定功能沒有內建在.NET框架組中。使用.NET修改器要比使用屬性好,因為這將簡化同其它裝配件的整合過程。

  • 屬性必須儲存什麼資訊?

    屬性是打算用來指示某個功能的簡單標誌嗎?或者屬性是否要儲存資訊?一個屬性可以擁有設計時賦予的一組資訊,並在運行時查看這些資訊。例如,看一下樣本應用中的別名屬性。

  • 屬性應該駐留在哪個裝配件中?

    大多數情況下,可以將屬性包含在使用該屬性的裝配件中。不過也有這樣的例子,將屬性駐留在公用的、輕量級的、共用裝配件中會更好些。這種類型的配置允許客戶使用屬性時不必引用不需要的裝配件。

  • 哪些裝配件將會識別屬性?

    如果沒有模組讀取屬性,那麼它將一文不值。你很可能將讀取屬性的類放在屬性駐留的同一個裝配件中。然而,正像前面提到的,也有這樣的例子,你想將讀取屬性的方法與屬性自身分別放在不同的裝配件中。

        /// <summary>
        /// 自定議一下FileType屬性
        /// </summary>
        string sFileType = "*";        
        //Browsable:取得值,表示物件是否為可瀏覽。 
        [Browsable(true)]
        //DefaultValue:取得物件,其中包含與組態屬性有關的預設值。
        [DefaultValue("*")]
        //Category:取得屬性 (Property) 分類的名稱或與這個屬性 (Attribute) 所套用的事件。
        [Category("Basic_Property"), Description("當是輸入路徑的時候加上檔案的檔案類型")]        
        public string FileType
        {
            //取值方法   
            get
            {               
                return sFileType;                
            }
            //賦值方法
            set
            {
                sFileType = value;

                //當屬性被使用時,為了便於查看結果,將txtbox控制項賦上值
                if (sFileType == "C#")
                {
                    this.Text = "C#";
                }
                else
                {
                    this.Text = "???";
                }            
            }
        }

註:
    如果只設置get{ ... },表示是只讀屬性。
    如果只設置set{ ... },表示是只寫屬性。只寫屬性適用於對密碼這樣的數據進行保護。理想情況下,需要確保安全性的應用程式允許設置密碼,但不允許你把它讀出來。一個登錄方法只應將用戶提供的密碼與存儲的密碼比較,並返回兩者是否匹配的訊息。

參考:http://www.pcdog.com/edu/csharp/2007/04/j184921.html

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.