擴充ToolStrip的自訂項目控制項

  • 1807
  • 0
  • C#
  • 2012-03-21

摘要:擴充ToolStrip的自訂項目控制項

  

有些情況在使用ToolStrip類型的功能表控制項(例如MenuStrip)時,基本的子項目可能無法達到需求,這時候就需要擴充或自訂,然而.NET 2.0 Window Form 應用程式要達到目的是很容易的,千萬不要笨笨的自己去實作Custom Control(雖然筆者就是笨笨的自己實作完後才發現有更快的方法= =)。

  

下面範例主要是使用是將要擴充的控制項繼承ToolStripControlHost類別去實作出一個有DateTimePicker(日期選取器)功能的子項目控制項。

 


   [ToolboxBitmap(typeof(MonthCalendar))] //在工具列顯示的圖示
   [ToolStripItemDesignerAvailability(
      ToolStripItemDesignerAvailability.ContextMenuStrip | 
      ToolStripItemDesignerAvailability.MenuStrip |
      ToolStripItemDesignerAvailability.ToolStrip)] //允許使用此物件的ToolStrip控制項
    public class ToolStripDateTimePicker : ToolStripControlHost
    {
        public ToolStripDateTimePicker()
            : base(new DateTimePicker())  //將要擴充的類型實體在建構子初始化
        {
            this.Control.CreateControl();    //執行形成內容控制項的方法
        }

        //--加入取得內容控制項的屬性
        /// 
        /// 取得內容DateTimePicker實體
        /// 
        public DateTimePicker DateTimePicker
        {
            get { return (DateTimePicker)base.Control; }
        }
        //------------------------------------------------
         
        private void InitializeComponent() { }
    }