ToolStripItem 類別

定義

表示抽象基底類別,用於管理 ToolStripToolStripDropDown 可包含之所有項目的事件和配置。

public ref class ToolStripItem abstract : System::ComponentModel::Component, IDisposable, System::Windows::Forms::IDropTarget
public ref class ToolStripItem abstract : System::Windows::Forms::BindableComponent, IDisposable, System::Windows::Forms::IDropTarget
public abstract class ToolStripItem : System.ComponentModel.Component, IDisposable, System.Windows.Forms.IDropTarget
public abstract class ToolStripItem : System.Windows.Forms.BindableComponent, IDisposable, System.Windows.Forms.IDropTarget
type ToolStripItem = class
    inherit Component
    interface IDropTarget
    interface IComponent
    interface IDisposable
type ToolStripItem = class
    inherit BindableComponent
    interface IDropTarget
    interface IComponent
    interface IDisposable
Public MustInherit Class ToolStripItem
Inherits Component
Implements IDisposable, IDropTarget
Public MustInherit Class ToolStripItem
Inherits BindableComponent
Implements IDisposable, IDropTarget
繼承
繼承
衍生
實作

範例

下列程式碼範例示範如何實作自訂 ToolStripItem 控制項。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Windows.Forms;

namespace RolloverItemDemoLib
{
    // This class implements a ToolStripItem that highlights
    // its border and text when the mouse enters its
    // client rectangle. It has a clickable state which is
    // exposed through the Clicked property and displayed
    // by highlighting or graying out the item's image. 
    public class RolloverItem : ToolStripItem
    {
        private bool clickedValue = false;
        private bool rolloverValue = false;

        private Rectangle imageRect;
        private Rectangle textRect;

        // For brevity, this implementation limits the possible 
        // TextDirection values to ToolStripTextDirection.Horizontal. 
        public override ToolStripTextDirection TextDirection
        {
            get
            {
                return base.TextDirection;
            }
            set
            {
                if (value == ToolStripTextDirection.Horizontal)
                {
                    base.TextDirection = value;
                }
                else
                {
                    throw new ArgumentException(
                        "RolloverItem supports only horizontal text.");
                }
            }
        }

        // For brevity, this implementation limits the possible 
        // TextImageRelation values to ImageBeforeText and TextBeforeImage. 
        public new TextImageRelation TextImageRelation
        {
            get
            {
                return base.TextImageRelation;
            }

            set
            {
                if (value == TextImageRelation.ImageBeforeText || 
                    value == TextImageRelation.TextBeforeImage)
                {
                    base.TextImageRelation = value;
                }
                else
                {
                    throw new ArgumentException(
                        "Unsupported TextImageRelation value.");
                }
            }
        }
        
        // This property returns true if the mouse is 
        // inside the client rectangle.
        public bool Rollover
        {
            get
            {
                return this.rolloverValue;
            }   
        }

        // This property returns true if the item 
        // has been toggled into the clicked state.
        // Clicking again toggles it to the 
        // unclicked state.
        public bool Clicked
        {
            get
            {
                return this.clickedValue;
            }
        }

        // The method defines the behavior of the Click event.
        // It simply toggles the state of the clickedValue field.
        protected override void OnClick(EventArgs e)
        {
            base.OnClick(e);

            this.clickedValue ^= true;
        }

        // The method defines the behavior of the DoubleClick 
        // event. It shows a MessageBox with the item's text.
        protected override void OnDoubleClick(EventArgs e)
        {
            base.OnDoubleClick(e);

            string msg = String.Format("Item: {0}", this.Text);

            MessageBox.Show(msg);
        }

        // This method defines the behavior of the MouseEnter event.
        // It sets the state of the rolloverValue field to true and
        // tells the control to repaint.
        protected override void OnMouseEnter(EventArgs e)
        {
            base.OnMouseEnter(e);

            this.rolloverValue = true;

            this.Invalidate();
        }

        // This method defines the behavior of the MouseLeave event.
        // It sets the state of the rolloverValue field to false and
        // tells the control to repaint.
        protected override void OnMouseLeave(EventArgs e)
        {
            base.OnMouseLeave(e);

            this.rolloverValue = false;

            this.Invalidate();
        }

        // This method defines the painting behavior of the control.
        // It performs the following operations:
        //
        // Computes the layout of the item's image and text.
        // Draws the item's background image.
        // Draws the item's image.
        // Draws the item's text.
        //
        // Drawing operations are implemented in the 
        // RolloverItemRenderer class.
        protected override void OnPaint(PaintEventArgs e)
        {
            base.OnPaint(e);

            if (this.Owner != null)
            {
                // Find the dimensions of the image and the text 
                // areas of the item. 
                this.ComputeImageAndTextLayout();

                // Draw the background. This includes drawing a highlighted 
                // border when the mouse is in the client area.
                ToolStripItemRenderEventArgs ea = new ToolStripItemRenderEventArgs(
                     e.Graphics,
                     this);
                this.Owner.Renderer.DrawItemBackground(ea);

                // Draw the item's image. 
                ToolStripItemImageRenderEventArgs irea =
                    new ToolStripItemImageRenderEventArgs(
                    e.Graphics,
                    this,
                    imageRect );
                this.Owner.Renderer.DrawItemImage(irea);

                // If the item is on a drop-down, give its
                // text a different highlighted color.
                Color highlightColor = 
                    this.IsOnDropDown ?
                    Color.Salmon : SystemColors.ControlLightLight;

                // Draw the text, and highlight it if the 
                // the rollover state is true.
                ToolStripItemTextRenderEventArgs rea =
                    new ToolStripItemTextRenderEventArgs(
                    e.Graphics,
                    this,
                    base.Text,
                    textRect,
                    this.rolloverValue ? highlightColor : base.ForeColor,
                    base.Font,
                    base.TextAlign);
                this.Owner.Renderer.DrawItemText(rea);
            }
        }

        // This utility method computes the layout of the 
        // RolloverItem control's image area and the text area.
        // For brevity, only the following settings are 
        // supported:
        //
        // ToolStripTextDirection.Horizontal
        // TextImageRelation.ImageBeforeText 
        // TextImageRelation.ImageBeforeText
        // 
        // It would not be difficult to support vertical text
        // directions and other image/text relationships.
        private void ComputeImageAndTextLayout()
        {
            Rectangle cr = base.ContentRectangle;
            Image img = base.Owner.ImageList.Images[base.ImageKey];

            // Compute the center of the item's ContentRectangle.
            int centerY = (cr.Height - img.Height) / 2;

            // Find the dimensions of the image and the text 
            // areas of the item. The text occupies the space 
            // not filled by the image. 
            if (base.TextImageRelation == TextImageRelation.ImageBeforeText &&
                base.TextDirection == ToolStripTextDirection.Horizontal)
            {
                imageRect = new Rectangle(
                    base.ContentRectangle.Left,
                    centerY,
                    base.Image.Width,
                    base.Image.Height);

                textRect = new Rectangle(
                    imageRect.Width,
                    base.ContentRectangle.Top,
                    base.ContentRectangle.Width - imageRect.Width,
                    base.ContentRectangle.Height);
            }
            else if (base.TextImageRelation == TextImageRelation.TextBeforeImage &&
                     base.TextDirection == ToolStripTextDirection.Horizontal)
            {
                imageRect = new Rectangle(
                    base.ContentRectangle.Right - base.Image.Width,
                    centerY,
                    base.Image.Width,
                    base.Image.Height);

                textRect = new Rectangle(
                    base.ContentRectangle.Left,
                    base.ContentRectangle.Top,
                    imageRect.X,
                    base.ContentRectangle.Bottom);
            }
        }
    }

    #region RolloverItemRenderer

    // This is the custom renderer for the RolloverItem control.
    // It draws a border around the item when the mouse is
    // in the item's client area. It also draws the item's image
    // in an inactive state (grayed out) until the user clicks
    // the item to toggle its "clicked" state.
    internal class RolloverItemRenderer : ToolStripSystemRenderer
    {
        protected override void OnRenderItemImage(
            ToolStripItemImageRenderEventArgs e)
        {
            base.OnRenderItemImage(e);

            RolloverItem item = e.Item as RolloverItem;

            // If the ToolSTripItem is of type RolloverItem, 
            // perform custom rendering for the image.
            if (item != null)
            {
                if (item.Clicked)
                {
                    // The item is in the clicked state, so 
                    // draw the image as usual.
                    e.Graphics.DrawImage(
                        e.Image,
                        e.ImageRectangle.X,
                        e.ImageRectangle.Y);
                }
                else
                {
                    // In the unclicked state, gray out the image.
                    ControlPaint.DrawImageDisabled(
                        e.Graphics,
                        e.Image,
                        e.ImageRectangle.X,
                        e.ImageRectangle.Y,
                        item.BackColor);
                }
            }
        }

        // This method defines the behavior for rendering the
        // background of a ToolStripItem. If the item is a
        // RolloverItem, it paints the item's BackgroundImage 
        // centered in the client area. If the mouse is in the 
        // item's client area, a border is drawn around it.
        // If the item is on a drop-down or if it is on the
        // overflow, a gradient is painted in the background.
        protected override void OnRenderItemBackground(
            ToolStripItemRenderEventArgs e)
        {
            base.OnRenderItemBackground(e);

            RolloverItem item = e.Item as RolloverItem;

            // If the ToolSTripItem is of type RolloverItem, 
            // perform custom rendering for the background.
            if (item != null)
            {
                if (item.Placement == ToolStripItemPlacement.Overflow ||
                    item.IsOnDropDown)
                {
                    using (LinearGradientBrush b = new LinearGradientBrush(
                        item.ContentRectangle,
                        Color.Salmon,
                        Color.DarkRed,
                        0f,
                        false))
                    {
                        e.Graphics.FillRectangle(b, item.ContentRectangle);
                    }
                }

                // The RolloverItem control only supports 
                // the ImageLayout.Center setting for the
                // BackgroundImage property.
                if (item.BackgroundImageLayout == ImageLayout.Center)
                {
                    // Get references to the item's ContentRectangle
                    // and BackgroundImage, for convenience.
                    Rectangle cr = item.ContentRectangle;
                    Image bgi = item.BackgroundImage;

                    // Compute the center of the item's ContentRectangle.
                    int centerX = (cr.Width - bgi.Width) / 2;
                    int centerY = (cr.Height - bgi.Height) / 2;

                    // If the item is selected, draw the background
                    // image as usual. Otherwise, draw it as disabled.
                    if (item.Selected)
                    {
                        e.Graphics.DrawImage(bgi, centerX, centerY);
                    }
                    else
                    {
                        ControlPaint.DrawImageDisabled(
                                e.Graphics,
                                bgi,
                                centerX,
                                centerY,
                                item.BackColor);
                    }
                }

                // If the item is in the rollover state, 
                // draw a border around it.
                if (item.Rollover)
                {
                    ControlPaint.DrawFocusRectangle(
                        e.Graphics,
                        item.ContentRectangle);
                }
            }
        }

    #endregion

    }

    // This form tests various features of the RolloverItem
    // control. RolloverItem conrols are created and added
    // to the form's ToolStrip. They are also created and 
    // added to a button's ContextMenuStrip. The behavior
    // of the RolloverItem control differs depending on 
    // the type of parent control.
    public class RolloverItemTestForm : Form
    {
        private System.Windows.Forms.ToolStrip toolStrip1;
        private System.Windows.Forms.Button button1;

        private string infoIconKey = "Information icon";
        private string handIconKey = "Hand icon";
        private string exclIconKey = "Exclamation icon";
        private string questionIconKey = "Question icon";
        private string warningIconKey = "Warning icon ";

        private System.ComponentModel.IContainer components = null;

        public RolloverItemTestForm()
        {
            InitializeComponent();

            // Set up the form's ToolStrip control.
            InitializeToolStrip();

            // Set up the ContextMenuStrip for the button.
            InitializeContextMenu();
        }

        // This utility method initializes the ToolStrip control's 
        // image list. For convenience, icons from the SystemIcons 
        // class are used for this demonstration, but any images
        // could be used.
        private void InitializeImageList(ToolStrip ts)
        {
            if (ts.ImageList == null)
            {
                ts.ImageList = new ImageList();
                ts.ImageList.ImageSize = SystemIcons.Exclamation.Size;

                ts.ImageList.Images.Add(
                    this.infoIconKey,
                    SystemIcons.Information);

                ts.ImageList.Images.Add(
                    this.handIconKey,
                    SystemIcons.Hand);

                ts.ImageList.Images.Add(
                    this.exclIconKey,
                    SystemIcons.Exclamation);

                ts.ImageList.Images.Add(
                    this.questionIconKey,
                    SystemIcons.Question);

                ts.ImageList.Images.Add(
                    this.warningIconKey,
                    SystemIcons.Warning);
            }
        }

        private void InitializeToolStrip()
        {
            this.InitializeImageList(this.toolStrip1);

            this.toolStrip1.Renderer = new RolloverItemRenderer();

            RolloverItem item = this.CreateRolloverItem(
                this.toolStrip1,
                "RolloverItem on ToolStrip",
                this.Font,
                infoIconKey,
                TextImageRelation.ImageBeforeText,
                exclIconKey);

            this.toolStrip1.Items.Add(item);

            item = this.CreateRolloverItem(
                this.toolStrip1,
                "RolloverItem on ToolStrip",
                this.Font,
                infoIconKey,
                TextImageRelation.ImageBeforeText,
                exclIconKey);

            this.toolStrip1.Items.Add(item);
        }

        private void InitializeContextMenu()
        {
            Font f = new System.Drawing.Font(
                "Arial",
                18f,
                FontStyle.Bold);

            ContextMenuStrip cms = new ContextMenuStrip();
            this.InitializeImageList(cms);

            cms.Renderer = new RolloverItemRenderer();
            cms.AutoSize = true;
            cms.ShowCheckMargin = false;
            cms.ShowImageMargin = false;

            RolloverItem item = this.CreateRolloverItem(
                cms,
                "RolloverItem on ContextMenuStrip",
                f,
                handIconKey,
                TextImageRelation.ImageBeforeText,
                exclIconKey);

            cms.Items.Add(item);

            item = this.CreateRolloverItem(
                cms,
                "Another RolloverItem on ContextMenuStrip",
                f,
                questionIconKey,
                TextImageRelation.ImageBeforeText,
                exclIconKey);

            cms.Items.Add(item);

            item = this.CreateRolloverItem(
                cms,
                "And another RolloverItem on ContextMenuStrip",
                f,
                warningIconKey,
                TextImageRelation.ImageBeforeText,
                exclIconKey);

            cms.Items.Add(item);

            cms.Closing += new ToolStripDropDownClosingEventHandler(cms_Closing);

            this.button1.ContextMenuStrip = cms;
        }

        // This method handles the ContextMenuStrip 
        // control's Closing event. It prevents the 
        // RolloverItem from closing the drop-down  
        // when the item is clicked.
        void cms_Closing(object sender, ToolStripDropDownClosingEventArgs e)
        {
            if (e.CloseReason == ToolStripDropDownCloseReason.ItemClicked)
            {
                e.Cancel = true;
            }
        }

        // This method handles the Click event for the button.
        // it selects the first item in the ToolStrip control
        // by using the ToolStripITem.Select method.
        private void button1_Click(object sender, EventArgs e)
        {
            RolloverItem item = this.toolStrip1.Items[0] as RolloverItem;

            if (item != null)
            {
                item.Select();

                this.Invalidate();
            }
        }

        // This utility method creates a RolloverItem 
        // and adds it to a ToolStrip control.
        private RolloverItem CreateRolloverItem(
            ToolStrip owningToolStrip,
            string txt,
            Font f,
            string imgKey,
            TextImageRelation tir,
            string backImgKey)
        {
            RolloverItem item = new RolloverItem();

            item.Alignment = ToolStripItemAlignment.Left;
            item.AllowDrop = false;
            item.AutoSize = true;

            item.BackgroundImage = owningToolStrip.ImageList.Images[backImgKey];
            item.BackgroundImageLayout = ImageLayout.Center;
            item.DisplayStyle = ToolStripItemDisplayStyle.ImageAndText;
            item.DoubleClickEnabled = true;
            item.Enabled = true;
            item.Font = f;

            // These assignments are equivalent. Each assigns an
            // image from the owning toolstrip's image list.
            item.ImageKey = imgKey;
            //item.Image = owningToolStrip.ImageList.Images[infoIconKey];
            //item.ImageIndex = owningToolStrip.ImageList.Images.IndexOfKey(infoIconKey);
            item.ImageScaling = ToolStripItemImageScaling.None;

            item.Owner = owningToolStrip;
            item.Padding = new Padding(2);
            item.Text = txt;
            item.TextAlign = ContentAlignment.MiddleLeft;
            item.TextDirection = ToolStripTextDirection.Horizontal;
            item.TextImageRelation = tir;

            return item;
        }

        protected override void Dispose(bool disposing)
        {
            if (disposing && (components != null))
            {
                components.Dispose();
            }
            base.Dispose(disposing);
        }

        #region Windows Form Designer generated code

        private void InitializeComponent()
        {
            this.toolStrip1 = new System.Windows.Forms.ToolStrip();
            this.button1 = new System.Windows.Forms.Button();
            this.SuspendLayout();
            // 
            // toolStrip1
            // 
            this.toolStrip1.AllowItemReorder = true;
            this.toolStrip1.Location = new System.Drawing.Point(0, 0);
            this.toolStrip1.Name = "toolStrip1";
            this.toolStrip1.Size = new System.Drawing.Size(845, 25);
            this.toolStrip1.TabIndex = 0;
            this.toolStrip1.Text = "toolStrip1";
            // 
            // button1
            // 
            this.button1.Location = new System.Drawing.Point(12, 100);
            this.button1.Name = "button1";
            this.button1.Size = new System.Drawing.Size(86, 23);
            this.button1.TabIndex = 1;
            this.button1.Text = "Click to select";
            this.button1.UseVisualStyleBackColor = true;
            this.button1.Click += new System.EventHandler(this.button1_Click);
            // 
            // RolloverItemTestForm
            // 
            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 14F);
            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
            this.AutoSize = true;
            this.ClientSize = new System.Drawing.Size(845, 282);
            this.Controls.Add(this.button1);
            this.Controls.Add(this.toolStrip1);
            this.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
            this.Name = "RolloverItemTestForm";
            this.Text = "Form1";
            this.ResumeLayout(false);
            this.PerformLayout();
        }

        #endregion
    }

    static class Program
    {   
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new RolloverItemTestForm());
        }
    }
}
Option Strict On
Option Explicit On

Imports System.Collections.Generic
Imports System.ComponentModel
Imports System.Drawing
Imports System.Drawing.Drawing2D
Imports System.Windows.Forms

' This class implements a ToolStripItem that highlights
' its border and text when the mouse enters its
' client rectangle. It has a clickable state which is
' exposed through the Clicked property and displayed
' by highlighting or graying out the item's image. 
Public Class RolloverItem
    Inherits ToolStripItem

   Private clickedValue As Boolean = False
   Private rolloverValue As Boolean = False
   
   Private imageRect As Rectangle
   Private textRect As Rectangle
   
   ' For brevity, this implementation limits the possible 
   ' TextDirection values to ToolStripTextDirection.Horizontal. 
   Public Overrides Property TextDirection() As ToolStripTextDirection
      Get
         Return MyBase.TextDirection
      End Get
      Set
         If value = ToolStripTextDirection.Horizontal Then
            MyBase.TextDirection = value
         Else
                Throw New ArgumentException( _
                "RolloverItem supports only horizontal text.")
         End If
      End Set
   End Property
   
   ' For brevity, this implementation limits the possible 
   ' TextImageRelation values to ImageBeforeText and TextBeforeImage. 
   Public Shadows Property TextImageRelation() As TextImageRelation
      Get
         Return MyBase.TextImageRelation
      End Get
      
      Set
            If Value = TextImageRelation.ImageBeforeText OrElse _
               Value = TextImageRelation.TextBeforeImage Then
                MyBase.TextImageRelation = Value
            Else
                Throw New ArgumentException("Unsupported TextImageRelation value.")
            End If
      End Set
   End Property
   
   ' This property returns true if the mouse is 
   ' inside the client rectangle.
   Public ReadOnly Property Rollover() As Boolean
      Get
         Return Me.rolloverValue
      End Get
    End Property

   ' This property returns true if the item 
   ' has been toggled into the clicked state.
   ' Clicking again toggles it to the 
   ' unclicked state.
   Public ReadOnly Property Clicked() As Boolean
      Get
         Return Me.clickedValue
      End Get
   End Property
   
   ' The method defines the behavior of the Click event.
   ' It simply toggles the state of the clickedValue field.
   Protected Overrides Sub OnClick(e As EventArgs)
      MyBase.OnClick(e)
      
        Me.clickedValue = Me.clickedValue Xor True
    End Sub

   ' The method defines the behavior of the DoubleClick 
   ' event. It shows a MessageBox with the item's text.
   Protected Overrides Sub OnDoubleClick(e As EventArgs)
      MyBase.OnDoubleClick(e)
      
      Dim msg As String = String.Format("Item: {0}", Me.Text)
      
      MessageBox.Show(msg)
    End Sub

   ' This method defines the behavior of the MouseEnter event.
   ' It sets the state of the rolloverValue field to true and
   ' tells the control to repaint.
   Protected Overrides Sub OnMouseEnter(e As EventArgs)
      MyBase.OnMouseEnter(e)
      
      Me.rolloverValue = True
      
      Me.Invalidate()
    End Sub
   
   ' This method defines the behavior of the MouseLeave event.
   ' It sets the state of the rolloverValue field to false and
   ' tells the control to repaint.
   Protected Overrides Sub OnMouseLeave(e As EventArgs)
      MyBase.OnMouseLeave(e)
      
      Me.rolloverValue = False
      
      Me.Invalidate()
    End Sub
   
   ' This method defines the painting behavior of the control.
   ' It performs the following operations:
   '
   ' Computes the layout of the item's image and text.
   ' Draws the item's background image.
   ' Draws the item's image.
   ' Draws the item's text.
   '
   ' Drawing operations are implemented in the 
   ' RolloverItemRenderer class.
   Protected Overrides Sub OnPaint(e As PaintEventArgs)
      MyBase.OnPaint(e)
      
      If (Me.Owner IsNot Nothing) Then
         ' Find the dimensions of the image and the text 
         ' areas of the item. 
         Me.ComputeImageAndTextLayout()
         
         ' Draw the background. This includes drawing a highlighted 
         ' border when the mouse is in the client area.
         Dim ea As New ToolStripItemRenderEventArgs(e.Graphics, Me)
         Me.Owner.Renderer.DrawItemBackground(ea)
         
         ' Draw the item's image. 
         Dim irea As New ToolStripItemImageRenderEventArgs(e.Graphics, Me, imageRect)
         Me.Owner.Renderer.DrawItemImage(irea)
         
         ' If the item is on a drop-down, give its
         ' text a different highlighted color.
            Dim highlightColor As Color = CType(IIf(Me.IsOnDropDown, Color.Salmon, SystemColors.ControlLightLight), Color)
         
         ' Draw the text, and highlight it if the 
         ' the rollover state is true.
            Dim rea As New ToolStripItemTextRenderEventArgs( _
               e.Graphics, _
               Me, _
               MyBase.Text, _
               textRect, _
               CType(IIf(Me.rolloverValue, highlightColor, MyBase.ForeColor), Color), _
               MyBase.Font, _
               MyBase.TextAlign)
         Me.Owner.Renderer.DrawItemText(rea)
      End If
    End Sub

   ' This utility method computes the layout of the 
   ' RolloverItem control's image area and the text area.
   ' For brevity, only the following settings are 
   ' supported:
   '
   ' ToolStripTextDirection.Horizontal
   ' TextImageRelation.ImageBeforeText 
   ' TextImageRelation.ImageBeforeText
   ' 
   ' It would not be difficult to support vertical text
   ' directions and other image/text relationships.
   Private Sub ComputeImageAndTextLayout()
      Dim cr As Rectangle = MyBase.ContentRectangle
      Dim img As Image = MyBase.Owner.ImageList.Images(MyBase.ImageKey)
      
      ' Compute the center of the item's ContentRectangle.
        Dim centerY As Integer = CInt((cr.Height - img.Height) / 2)
      
      ' Find the dimensions of the image and the text 
      ' areas of the item. The text occupies the space 
      ' not filled by the image. 
        If MyBase.TextImageRelation = _
        TextImageRelation.ImageBeforeText AndAlso _
        MyBase.TextDirection = ToolStripTextDirection.Horizontal Then

            imageRect = New Rectangle( _
            MyBase.ContentRectangle.Left, _
            centerY, _
            MyBase.Image.Width, _
            MyBase.Image.Height)

            textRect = New Rectangle( _
            imageRect.Width, _
            MyBase.ContentRectangle.Top, _
            MyBase.ContentRectangle.Width - imageRect.Width, _
            MyBase.ContentRectangle.Height)

        ElseIf MyBase.TextImageRelation = _
        TextImageRelation.TextBeforeImage AndAlso _
        MyBase.TextDirection = ToolStripTextDirection.Horizontal Then

            imageRect = New Rectangle( _
            MyBase.ContentRectangle.Right - MyBase.Image.Width, _
            centerY, _
            MyBase.Image.Width, _
            MyBase.Image.Height)

            textRect = New Rectangle( _
            MyBase.ContentRectangle.Left, _
            MyBase.ContentRectangle.Top, _
            imageRect.X, _
            MyBase.ContentRectangle.Bottom)

        End If
    End Sub
End Class

' This is the custom renderer for the RolloverItem control.
' It draws a border around the item when the mouse is
' in the item's client area. It also draws the item's image
' in an inactive state (grayed out) until the user clicks
' the item to toggle its "clicked" state.
Friend Class RolloverItemRenderer
    Inherits ToolStripSystemRenderer

    Protected Overrides Sub OnRenderItemImage(ByVal e As ToolStripItemImageRenderEventArgs)
        MyBase.OnRenderItemImage(e)

        Dim item As RolloverItem = CType(e.Item, RolloverItem)

        ' If the ToolSTripItem is of type RolloverItem, 
        ' perform custom rendering for the image.
        If (item IsNot Nothing) Then
            If item.Clicked Then
                ' The item is in the clicked state, so 
                ' draw the image as usual.
                e.Graphics.DrawImage(e.Image, e.ImageRectangle.X, e.ImageRectangle.Y)
            Else
                ' In the unclicked state, gray out the image.
                ControlPaint.DrawImageDisabled(e.Graphics, e.Image, e.ImageRectangle.X, e.ImageRectangle.Y, item.BackColor)
            End If
        End If
    End Sub

    ' This method defines the behavior for rendering the
    ' background of a ToolStripItem. If the item is a
    ' RolloverItem, it paints the item's BackgroundImage 
    ' centered in the client area. If the mouse is in the 
    ' item's client area, a border is drawn around it.
    ' If the item is on a drop-down or if it is on the
    ' overflow, a gradient is painted in the background.
    Protected Overrides Sub OnRenderItemBackground(ByVal e As ToolStripItemRenderEventArgs)
        MyBase.OnRenderItemBackground(e)

        Dim item As RolloverItem = CType(e.Item, RolloverItem)

        ' If the ToolSTripItem is of type RolloverItem, 
        ' perform custom rendering for the background.
        If (item IsNot Nothing) Then
            If item.Placement = ToolStripItemPlacement.Overflow OrElse item.IsOnDropDown Then
                Dim b As New LinearGradientBrush(item.ContentRectangle, Color.Salmon, Color.DarkRed, 0.0F, False)
                Try
                    e.Graphics.FillRectangle(b, item.ContentRectangle)
                Finally
                    b.Dispose()
                End Try
            End If

            ' The RolloverItem control only supports 
            ' the ImageLayout.Center setting for the
            ' BackgroundImage property.
            If item.BackgroundImageLayout = ImageLayout.Center Then
                ' Get references to the item's ContentRectangle
                ' and BackgroundImage, for convenience.
                Dim cr As Rectangle = item.ContentRectangle
                Dim bgi As Image = item.BackgroundImage

                ' Compute the center of the item's ContentRectangle.
                Dim centerX As Integer = CInt((cr.Width - bgi.Width) / 2)
                Dim centerY As Integer = CInt((cr.Height - bgi.Height) / 2)

                ' If the item is selected, draw the background
                ' image as usual. Otherwise, draw it as disabled.
                If item.Selected Then
                    e.Graphics.DrawImage(bgi, centerX, centerY)
                Else
                    ControlPaint.DrawImageDisabled(e.Graphics, bgi, centerX, centerY, item.BackColor)
                End If
            End If

            ' If the item is in the rollover state, 
            ' draw a border around it.
            If item.Rollover Then
                ControlPaint.DrawFocusRectangle(e.Graphics, item.ContentRectangle)
            End If
        End If
    End Sub

End Class

' This form tests various features of the RolloverItem
' control. RolloverItem conrols are created and added
' to the form's ToolStrip. They are also created and 
' added to a button's ContextMenuStrip. The behavior
' of the RolloverItem control differs depending on 
' the type of parent control.

Public Class RolloverItemTestForm
   Inherits Form
   Private toolStrip1 As System.Windows.Forms.ToolStrip
   Private WithEvents button1 As System.Windows.Forms.Button
   
   Private infoIconKey As String = "Information icon"
   Private handIconKey As String = "Hand icon"
   Private exclIconKey As String = "Exclamation icon"
   Private questionIconKey As String = "Question icon"
   Private warningIconKey As String = "Warning icon "
   
   Private components As System.ComponentModel.IContainer = Nothing
   
   
   Public Sub New()
      InitializeComponent()
      
      ' Set up the form's ToolStrip control.
      InitializeToolStrip()
      
      ' Set up the ContextMenuStrip for the button.
      InitializeContextMenu()
    End Sub
   
   
   ' This utility method initializes the ToolStrip control's 
   ' image list. For convenience, icons from the SystemIcons 
   ' class are used for this demonstration, but any images
   ' could be used.
   Private Sub InitializeImageList(ts As ToolStrip)
      If ts.ImageList Is Nothing Then
         ts.ImageList = New ImageList()
         ts.ImageList.ImageSize = SystemIcons.Exclamation.Size
         
         ts.ImageList.Images.Add(Me.infoIconKey, SystemIcons.Information)
         
         ts.ImageList.Images.Add(Me.handIconKey, SystemIcons.Hand)
         
         ts.ImageList.Images.Add(Me.exclIconKey, SystemIcons.Exclamation)
         
         ts.ImageList.Images.Add(Me.questionIconKey, SystemIcons.Question)
         
         ts.ImageList.Images.Add(Me.warningIconKey, SystemIcons.Warning)
      End If
    End Sub
   
   
   Private Sub InitializeToolStrip()
      Me.InitializeImageList(Me.toolStrip1)
      
      Me.toolStrip1.Renderer = New RolloverItemRenderer()
      
      Dim item As RolloverItem = Me.CreateRolloverItem(Me.toolStrip1, "RolloverItem on ToolStrip", Me.Font, infoIconKey, TextImageRelation.ImageBeforeText, exclIconKey)
      
      Me.toolStrip1.Items.Add(item)
      
      item = Me.CreateRolloverItem(Me.toolStrip1, "RolloverItem on ToolStrip", Me.Font, infoIconKey, TextImageRelation.ImageBeforeText, exclIconKey)
      
      Me.toolStrip1.Items.Add(item)
    End Sub
   
   
   Private Sub InitializeContextMenu()
        Dim f As New System.Drawing.Font("Arial", 18.0F, FontStyle.Bold)
      
      Dim cms As New ContextMenuStrip()
      Me.InitializeImageList(cms)
      
      cms.Renderer = New RolloverItemRenderer()
      cms.AutoSize = True
      cms.ShowCheckMargin = False
      cms.ShowImageMargin = False
      
        Dim item As RolloverItem = Me.CreateRolloverItem( _
        cms, _
        "RolloverItem on ContextMenuStrip", _
        f, _
        handIconKey, _
        TextImageRelation.ImageBeforeText, _
        exclIconKey)
      
      cms.Items.Add(item)
      
        item = Me.CreateRolloverItem( _
        cms, _
        "Another RolloverItem on ContextMenuStrip", _
        f, _
        questionIconKey, _
        TextImageRelation.ImageBeforeText, _
        exclIconKey)
      
      cms.Items.Add(item)
      
        item = Me.CreateRolloverItem( _
        cms, _
        "And another RolloverItem on ContextMenuStrip", _
        CType(f, Drawing.Font), _
        warningIconKey, _
        TextImageRelation.ImageBeforeText, _
        exclIconKey)
      
      cms.Items.Add(item)
      
      AddHandler cms.Closing, AddressOf cms_Closing
      
      Me.button1.ContextMenuStrip = cms
    End Sub
   
   
   ' This method handles the ContextMenuStrip 
   ' control's Closing event. It prevents the 
   ' RolloverItem from closing the drop-down  
   ' when the item is clicked.
   Private Sub cms_Closing(sender As Object, e As ToolStripDropDownClosingEventArgs)
      If e.CloseReason = ToolStripDropDownCloseReason.ItemClicked Then
         e.Cancel = True
      End If
    End Sub
   
   
   ' This method handles the Click event for the button.
   ' it selects the first item in the ToolStrip control
   ' by using the ToolStripITem.Select method.
   Private Sub button1_Click(sender As Object, e As EventArgs) Handles button1.Click
        Dim item As RolloverItem = CType(Me.toolStrip1.Items(0), RolloverItem)
      
      If (item IsNot Nothing) Then
         item.Select()
         
         Me.Invalidate()
      End If
    End Sub

   ' This utility method creates a RolloverItem 
   ' and adds it to a ToolStrip control.
    Private Function CreateRolloverItem( _
    ByVal owningToolStrip As ToolStrip, _
    ByVal txt As String, _
    ByVal f As Font, _
    ByVal imgKey As String, _
    ByVal tir As TextImageRelation, _
    ByVal backImgKey As String) As RolloverItem

        Dim item As New RolloverItem()

        item.Alignment = ToolStripItemAlignment.Left
        item.AllowDrop = False
        item.AutoSize = True

        item.BackgroundImage = owningToolStrip.ImageList.Images(backImgKey)
        item.BackgroundImageLayout = ImageLayout.Center
        item.DisplayStyle = ToolStripItemDisplayStyle.ImageAndText
        item.DoubleClickEnabled = True
        item.Enabled = True
        item.Font = f

        ' These assignments are equivalent. Each assigns an
        ' image from the owning toolstrip's image list.
        item.ImageKey = imgKey
        'item.Image = owningToolStrip.ImageList.Images[infoIconKey];
        'item.ImageIndex = owningToolStrip.ImageList.Images.IndexOfKey(infoIconKey);
        item.ImageScaling = ToolStripItemImageScaling.None

        item.Owner = owningToolStrip
        item.Padding = New Padding(2)
        item.Text = txt
        item.TextAlign = ContentAlignment.MiddleLeft
        item.TextDirection = ToolStripTextDirection.Horizontal
        item.TextImageRelation = tir

        Return item
    End Function

   Protected Overrides Sub Dispose(disposing As Boolean)
      If disposing AndAlso (components IsNot Nothing) Then
         components.Dispose()
      End If
      MyBase.Dispose(disposing)
    End Sub
   
   #Region "Windows Form Designer generated code"
   
   Private Sub InitializeComponent()
      Me.toolStrip1 = New System.Windows.Forms.ToolStrip()
      Me.button1 = New System.Windows.Forms.Button()
      Me.SuspendLayout()
      ' 
      ' toolStrip1
      ' 
      Me.toolStrip1.AllowItemReorder = True
      Me.toolStrip1.Location = New System.Drawing.Point(0, 0)
      Me.toolStrip1.Name = "toolStrip1"
      Me.toolStrip1.Size = New System.Drawing.Size(845, 25)
      Me.toolStrip1.TabIndex = 0
      Me.toolStrip1.Text = "toolStrip1"
      ' 
      ' button1
      ' 
      Me.button1.Location = New System.Drawing.Point(12, 100)
      Me.button1.Name = "button1"
      Me.button1.Size = New System.Drawing.Size(86, 23)
      Me.button1.TabIndex = 1
      Me.button1.Text = "Click to select"
      Me.button1.UseVisualStyleBackColor = True
      ' 
      ' RolloverItemTestForm
      ' 
      Me.AutoScaleDimensions = New System.Drawing.SizeF(6F, 14F)
      Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
      Me.AutoSize = True
      Me.ClientSize = New System.Drawing.Size(845, 282)
      Me.Controls.Add(button1)
      Me.Controls.Add(toolStrip1)
        Me.Font = New System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, 0)
      Me.Name = "RolloverItemTestForm"
      Me.Text = "Form1"
      Me.ResumeLayout(False)
      Me.PerformLayout()
    End Sub
   
#End Region

End Class


Public Class Program

    <STAThread()> _
    Shared Sub Main()
        Application.EnableVisualStyles()
        Application.SetCompatibleTextRenderingDefault(False)
        Application.Run(New RolloverItemTestForm())
    End Sub
End Class

備註

ToolStripItem是一個元素,例如按鈕、下拉式方塊、文字方塊或標籤,可以包含在控制項或 ToolStripDropDown 控制項中 ToolStrip ,類似于 Windows 快顯功能表。 類別 ToolStrip 會管理這些元素的繪製和鍵盤和滑鼠輸入,包括拖放輸入,而 ToolStripItem 類別會管理元素本身內的事件和配置。

ToolStripItem 類別直接繼承自 ToolStripItem ,或間接繼承自 ToolStripItemToolStripControlHostToolStripDropDownItem

ToolStripItem 控制項必須包含在 ToolStripMenuStripStatusStripContextMenuStrip 中,而且無法直接新增至表單。 各種容器類別的設計目的是要包含適當的控制項子集 ToolStripItem

注意 指定的 ToolStripItem 不能有一個以上的父 ToolStrip 代 。 您必須複製 , ToolStripItem 並將它新增至其他 ToolStrip 控制項。

下表顯示衍生自 類別的專案 ToolStripItem ,因此可以裝載于 ToolStripToolStripDropDown 中。

元素 描述
ToolStripButton 支援影像和文字的工具列按鈕。
ToolStripLabel 文字標籤通常用於狀態列或 ToolStrip 做為批註或標題。
ToolStripSeparator 不可選取的空間或空格,其垂直列會以視覺化方式群組專案。
ToolStripControlHost 裝載 ToolStripItemToolStripComboBoxToolStripTextBoxToolStripProgressBar 、其他Windows Forms控制項或自訂控制項的 。

ToolStripComboBox是一個文字方塊,使用者可以在其中輸入文字,以及使用者可以從中選取要填入文字方塊的文字清單。

ToolStripTextBox 讓使用者輸入文字。

表示 ToolStripProgressBar 包含在 中的 StatusStrip Windows 進度列控制項。
ToolStripDropDownItem ToolStripItem 裝載 ToolStripMenuItemToolStripSplitButtonToolStripDropDownButton

ToolStripMenuItem是顯示在功能表或操作功能表上的可選取選項。

ToolStripSplitButton是一般按鈕和下拉式按鈕的組合。

ToolStripDropDownButton是支援下拉式功能的按鈕。
ToolStripStatusLabel 控制項中的 StatusStrip 面板。

建構函式

ToolStripItem()

初始化 ToolStripItem 類別的新執行個體。

ToolStripItem(String, Image, EventHandler)

使用指定的名稱、影像和事件處理常式,初始化 ToolStripItem 類別的新執行個體。

ToolStripItem(String, Image, EventHandler, String)

使用指定的顯示文字、影像、事件處理常式和名稱,初始化 ToolStripItem 類別的新執行個體。

屬性

AccessibilityObject

取得指定給控制項的 AccessibleObject

AccessibleDefaultActionDescription

取得或設定協助用戶端應用程式所使用的控制項的預設動作描述。

AccessibleDescription

取得或設定將報告給協助工具用戶端應用程式的描述。

AccessibleName

取得或設定協助工具用戶端應用程式使用的控制項名稱。

AccessibleRole

取得或設定控制項的可存取角色,此角色可指定控制項的使用者介面項目之類型。

Alignment

取得或設定值,指出項目是否會向 ToolStrip 的開頭或結尾對齊。

AllowDrop

取得或設定值,指出拖放和項目的重新排列是否透過您實作的事件來加以處理。

Anchor

取得或設定 ToolStripItem 繫結容器的目的邊緣,並決定 ToolStripItem 隨其父代調整大小的方式。

AutoSize

取得或設定值,指出項目是否會自動調整大小。

AutoToolTip

取得或設定值,這個值指出是否要針對 ToolTipText 工具提示使用 Text 屬性或 ToolStripItem 屬性。

Available

取得或設定值,指出 ToolStripItem 是否應該置於 ToolStrip 上。

BackColor

取得或設定項目的背景色彩。

BackgroundImage

取得或設定在項目中顯示的背景影像。

BackgroundImageLayout

取得或設定用於 ToolStripItem 的背景影像配置。

BindingContext

取得或設定 IBindableComponent 的 Currency 管理員集合。

(繼承來源 BindableComponent)
Bounds

取得項目的大小和位置。

CanRaiseEvents

取得值,指出元件是否能引發事件。

(繼承來源 Component)
CanSelect

取得值,指出是否可以選取此項目。

Command

取得或設定 ICommand 叫用 ToolStripItem 事件時,將會呼叫其 Execute(Object) 方法的 Click

CommandParameter

取得或設定傳遞至指派給 ICommand 屬性之 的參數 Command

Container

取得包含 IContainerComponent

(繼承來源 Component)
ContentRectangle

取得類似文字和圖示的內容可以放置到 ToolStripItem 內,而不需要覆寫背景框線的區域。

DataBindings

取得這個 IBindableComponent 的資料繫結物件集合。

(繼承來源 BindableComponent)
DefaultAutoToolTip

取得值,指出是否要顯示定義為預設值的 ToolTip

DefaultDisplayStyle

取得值,表示顯示在 ToolStripItem 上的項目為何。

DefaultMargin

取得項目的預設邊界。

DefaultPadding

取得項目的內部間距特性。

DefaultSize

取得此項目的預設大小。

DesignMode

取得值,指出 Component 目前是否處於設計模式。

(繼承來源 Component)
DismissWhenClicked

取得值,指出按一下 ToolStripDropDown 上的項目之後,這些項目是否會隱藏。

DisplayStyle

取得或設定文字和影像是否會顯示在 ToolStripItem 上的值。

Dock

取得或設定停駐在其父控制項的 ToolStripItem 框線,並決定 ToolStripItem 隨其父代重新調整大小的方式。

DoubleClickEnabled

取得或設定值,指出是否可以按兩下滑鼠來啟動 ToolStripItem

Enabled

取得或設定值,指出是否已啟用 ToolStripItem 的父控制項。

Events

取得附加在這個 Component 上的事件處理常式清單。

(繼承來源 Component)
Font

取得或設定項目顯示之文字字型。

ForeColor

取得或設定此項目的前景色彩。

Height

取得或設定 ToolStripItem 的高度 (以像素為單位)。

Image

取得或設定顯示在 ToolStripItem 上的影像。

ImageAlign

取得或設定 ToolStripItem 上影像的對齊方式。

ImageIndex

取得或設定此項目上顯示的影像索引值。

ImageKey

取得或設定在 ImageList 中顯示在 ToolStripItem 上的影像之按鍵存取子 (Accessor)。

ImageScaling

取得或設定值,表示 ToolStripItem 上的影像是否會自動調整大小,以納入容器中。

ImageTransparentColor

取得或設定 ToolStripItem 影像中視為透明的色彩。

IsDisposed

取得值,指出物件是否已經處置。

IsOnDropDown

取得值,指出目前 Control 的容器是否為 ToolStripDropDown

IsOnOverflow

取得值,指出 Placement 屬性是否設定為 Overflow

Margin

取得或設定此項目和相鄰項目之間的間距。

MergeAction

取得或設定子功能表要如何與父功能表合併的值。

MergeIndex

取得或設定目前 ToolStrip 中已合併項目的位置。

Name

取得或設定項目的名稱。

Overflow

取得或設定此項目是否附加至 ToolStripToolStripOverflowButton,或是可以在這兩者之間浮動的值。

Owner

取得或設定此項目的擁有人。

OwnerItem

取得這個 ToolStripItemToolStripItem

Padding

取得或設定介於此項目的內容與其邊緣之間的內部間距 (單位為像素)。

Parent

取得或設定 ToolStripItem 的父容器。

Placement

取得此項目的目前配置。

Pressed

取得值,指出是否已按下此項目的狀態。

RightToLeft

取得或設定值,指出項目是否要從右到左放置,而文字是否要從右到左寫入。

RightToLeftAutoMirrorImage

ToolStripItem 屬性設定為 RightToLeft 時,自動左右反轉 Yes

Selected

取得值,指出是否已選取此項目。

ShowKeyboardCues

取得值,指出要顯示還是隱藏快速鍵。

Site

取得或設定 ComponentISite

(繼承來源 Component)
Size

取得或設定項目的大小。

Tag

取得或設定物件,其中包含有關此項目的資料。

Text

取得或設定要顯示在此項目上的文字。

TextAlign

取得或設定 ToolStripLabel 上文字的對齊方式。

TextDirection

取得用於 ToolStripItem 上的文字之方向。

TextImageRelation

取得或設定 ToolStripItem 的文字和影像彼此之間的相對位置。

ToolTipText

取得或設定顯示為控制項的 ToolTip 之文字。

Visible

取得或設定值,指出是否會顯示此項目。

Width

取得或設定 ToolStripItem 的寬度 (以像素為單位)。

方法

CreateAccessibilityInstance()

ToolStripItem 建立新的協助工具物件。

CreateObjRef(Type)

建立包含所有相關資訊的物件,這些資訊是產生用來與遠端物件通訊的所需 Proxy。

(繼承來源 MarshalByRefObject)
Dispose()

釋放 Component 所使用的所有資源。

(繼承來源 Component)
Dispose(Boolean)

釋放 ToolStripItem 所使用的 Unmanaged 資源,並選擇性地釋放 Managed 資源。

DoDragDrop(Object, DragDropEffects)

開始拖放作業。

DoDragDrop(Object, DragDropEffects, Bitmap, Point, Boolean)

開始拖曳作業。

Equals(Object)

判斷指定的物件是否等於目前的物件。

(繼承來源 Object)
GetCurrentParent()

擷取 ToolStrip,其為目前 ToolStripItem 的容器。

GetHashCode()

做為預設雜湊函式。

(繼承來源 Object)
GetLifetimeService()
已淘汰.

擷取控制這個執行個體存留期 (Lifetime) 原則的目前存留期服務物件。

(繼承來源 MarshalByRefObject)
GetPreferredSize(Size)

擷取能夠容納控制項的矩形區域的大小。

GetService(Type)

傳回表示 Component 或其 Container 所提供之服務的物件。

(繼承來源 Component)
GetType()

取得目前執行個體的 Type

(繼承來源 Object)
InitializeLifetimeService()
已淘汰.

取得存留期服務物件,以控制這個執行個體的存留期原則。

(繼承來源 MarshalByRefObject)
Invalidate()

ToolStripItem 的整個介面失效,並重新繪製它。

Invalidate(Rectangle)

藉由將 ToolStripItem 的指定區域加入 ToolStripItem 的更新區域的方式使指定區域失效 (更新區域會在下一次繪製作業中重新繪製),並使繪製訊息傳送至 ToolStripItem

IsInputChar(Char)

判斷字元是否為此項目所能識別的輸入字元。

IsInputKey(Keys)

判斷指定的按鍵是標準輸入按鍵或需要前置處理的特殊按鍵。

MemberwiseClone()

建立目前 Object 的淺層複製。

(繼承來源 Object)
MemberwiseClone(Boolean)

建立目前 MarshalByRefObject 物件的淺層複本。

(繼承來源 MarshalByRefObject)
OnAvailableChanged(EventArgs)

引發 AvailableChanged 事件。

OnBackColorChanged(EventArgs)

引發 BackColorChanged 事件。

OnBindingContextChanged(EventArgs)

引發 BindingContextChanged 事件。

(繼承來源 BindableComponent)
OnBoundsChanged()

發生於 Bounds 屬性變更時。

OnClick(EventArgs)

引發 Click 事件。

OnCommandCanExecuteChanged(EventArgs)

引發 CommandCanExecuteChanged 事件。

OnCommandChanged(EventArgs)

引發 CommandChanged 事件。

OnCommandParameterChanged(EventArgs)

引發 CommandParameterChanged 事件。

OnDisplayStyleChanged(EventArgs)

引發 DisplayStyleChanged 事件。

OnDoubleClick(EventArgs)

引發 DoubleClick 事件。

OnDragDrop(DragEventArgs)

引發 DragDrop 事件。

OnDragEnter(DragEventArgs)

引發 DragEnter 事件。

OnDragLeave(EventArgs)

引發 DragLeave 事件。

OnDragOver(DragEventArgs)

引發 DragOver 事件。

OnEnabledChanged(EventArgs)

引發 EnabledChanged 事件。

OnFontChanged(EventArgs)

引發 FontChanged 事件。

OnForeColorChanged(EventArgs)

引發 ForeColorChanged 事件。

OnGiveFeedback(GiveFeedbackEventArgs)

引發 GiveFeedback 事件。

OnLayout(LayoutEventArgs)

引發 Layout 事件。

OnLocationChanged(EventArgs)

引發 LocationChanged 事件。

OnMouseDown(MouseEventArgs)

引發 MouseDown 事件。

OnMouseEnter(EventArgs)

引發 MouseEnter 事件。

OnMouseHover(EventArgs)

引發 MouseHover 事件。

OnMouseLeave(EventArgs)

引發 MouseLeave 事件。

OnMouseMove(MouseEventArgs)

引發 MouseMove 事件。

OnMouseUp(MouseEventArgs)

引發 MouseUp 事件。

OnOwnerChanged(EventArgs)

引發 OwnerChanged 事件。

OnOwnerFontChanged(EventArgs)

FontChanged 屬性已經在 Font 的父代上變更時,將會引發 ToolStripItem 事件。

OnPaint(PaintEventArgs)

引發 Paint 事件。

OnParentBackColorChanged(EventArgs)

引發 BackColorChanged 事件。

OnParentChanged(ToolStrip, ToolStrip)

引發 ParentChanged 事件。

OnParentEnabledChanged(EventArgs)

當此項目的容器之 EnabledChanged 屬性值變更時,會引發 Enabled 事件。

OnParentForeColorChanged(EventArgs)

引發 ForeColorChanged 事件。

OnParentRightToLeftChanged(EventArgs)

引發 RightToLeftChanged 事件。

OnQueryContinueDrag(QueryContinueDragEventArgs)

引發 QueryContinueDrag 事件。

OnRequestCommandExecute(EventArgs)

在 的內容 OnClick(EventArgs) 中呼叫,以在 內容允許時叫 Execute(Object) 用。

OnRightToLeftChanged(EventArgs)

引發 RightToLeftChanged 事件。

OnSelectedChanged(EventArgs)

表示抽象基底類別,用於管理 ToolStripToolStripDropDown 可包含之所有項目的事件和配置。

OnTextChanged(EventArgs)

引發 TextChanged 事件。

OnVisibleChanged(EventArgs)

引發 VisibleChanged 事件。

PerformClick()

產生 ToolStripItemClick 事件。

ProcessCmdKey(Message, Keys)

處理命令按鍵。

ProcessDialogKey(Keys)

處理對話方塊按鍵。

ProcessMnemonic(Char)

處理助憶鍵字元。

ResetBackColor()

這個方法與這個類別無關。

ResetDisplayStyle()

這個方法與這個類別無關。

ResetFont()

這個方法與這個類別無關。

ResetForeColor()

這個方法與這個類別無關。

ResetImage()

這個方法與這個類別無關。

ResetMargin()

這個方法與這個類別無關。

ResetPadding()

這個方法與這個類別無關。

ResetRightToLeft()

這個方法與這個類別無關。

ResetTextDirection()

這個方法與這個類別無關。

Select()

選取此項目。

SetBounds(Rectangle)

設定項目的大小和位置。

SetVisibleCore(Boolean)

ToolStripItem 設定為指定的可見狀態。

ToString()

傳回任何包含 Component 名稱的 String。 不應覆寫此方法。

事件

AvailableChanged

發生於 Available 屬性的值變更時。

BackColorChanged

發生於 BackColor 屬性的值變更時。

BindingContextChanged

發生于系結內容變更時。

(繼承來源 BindableComponent)
Click

發生於按一下 ToolStripItem 時。

CommandCanExecuteChanged

發生于指派給 Command 屬性之 ICommand 的狀態已變更時 CanExecute(Object)

CommandChanged

發生于指派 ICommandCommand 屬性已變更時。

CommandParameterChanged

發生於 CommandParameter 屬性的值已變更時。

DisplayStyleChanged

發生於 DisplayStyle 變更時。

Disposed

Dispose() 方法的呼叫處置元件時,就會發生。

(繼承來源 Component)
DoubleClick

發生於以滑鼠按兩下項目時。

DragDrop

發生於使用者拖曳項目以及釋放滑鼠按鈕時,表示項目應該放入這個項目中。

DragEnter

發生於使用者將項目拖入這個項目的工作區 (Client Area) 時。

DragLeave

發生於使用者拖曳項目並且滑鼠指標不再停留於這個項目的工作區上時。

DragOver

發生於使用者將項目拖過這個項目的工作區時。

EnabledChanged

發生於 Enabled 屬性值變更時。

ForeColorChanged

發生在 ForeColor 屬性值變更時。

GiveFeedback

發生於拖曳作業時。

LocationChanged

發生於 ToolStripItem 的位置更新時。

MouseDown

發生於滑鼠指標位於此項目上方,並按下滑鼠按鍵時。

MouseEnter

發生於滑鼠指標進入此項目時。

MouseHover

發生於滑鼠指標停留在此項目上方時。

MouseLeave

發生於滑鼠指標離開此項目時。

MouseMove

發生於滑鼠指標移至此項目上方時。

MouseUp

發生於滑鼠指標位於此項目上方,並放開滑鼠按鍵時。

OwnerChanged

發生於 Owner 屬性變更時。

Paint

發生於重新繪製此項目時。

QueryAccessibilityHelp

發生在可及性用戶端應用程式叫用 ToolStripItem 的說明時。

QueryContinueDrag

發生於拖放作業時,允許拖曳來源決定是否應取消拖放作業。

RightToLeftChanged

發生在 RightToLeft 屬性值變更時。

SelectedChanged

表示抽象基底類別,用於管理 ToolStripToolStripDropDown 可包含之所有項目的事件和配置。

TextChanged

發生於 Text 屬性的值變更時。

VisibleChanged

發生於 Visible 屬性的值變更時。

明確介面實作

IDropTarget.OnDragDrop(DragEventArgs)

引發 DragDrop 事件。

IDropTarget.OnDragEnter(DragEventArgs)

引發 DragEnter 事件。

IDropTarget.OnDragLeave(EventArgs)

引發 DragLeave 事件。

IDropTarget.OnDragOver(DragEventArgs)

引發 DragOver 事件。

適用於

另請參閱