摘要:擴充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() { }
}