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 继承,或是通过 ToolStripControlHostToolStripDropDownItem 间接从 ToolStripItem 继承。

ToolStripItem 控件必须包含在 ToolStripMenuStripStatusStripContextMenuStrip 中,不能直接添加到窗体中。 各种容器类设计为包含 ToolStripItem 控件的适当子集。

注意 给定 ToolStripItem 的 不能有多个父 ToolStrip。 必须复制 并将其 ToolStripItem 添加到其他 ToolStrip 控件。

下表显示了派生自 类的元素,ToolStripItem因此这些元素可以托管在 或 ToolStripDropDownToolStrip

元素 说明
ToolStripButton 支持图像和文本的工具栏按钮。
ToolStripLabel 通常用于状态栏或作为批注或 ToolStrip 标题的文本标签。
ToolStripSeparator 一个不可选择的空间或空间,带有垂直条,直观地对元素进行分组。
ToolStripControlHost 承载 ToolStripItemToolStripComboBoxToolStripTextBoxToolStripProgressBar、其他Windows 窗体控件或自定义控件的 。

ToolStripComboBox 一个文本框,用户可以在其中输入文本,以及用户可以从中选择文本以填充文本框的列表。

ToolStripTextBox使用户能够输入文本。

表示 ToolStripProgressBar 包含在 中的 StatusStripWindows 进度栏控件。
ToolStripDropDownItem 承载 ToolStripItemToolStripMenuItemToolStripSplitButtonToolStripDropDownButton的 。

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 的货币管理器的集合。

(继承自 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 中图像的键访问器。

ImageScaling

获取或设置一个值,该值指示是否根据容器自动调整 ToolStripItem 上图像的大小。

ImageTransparentColor

获取或设置 ToolStripItem 图像中被视为透明的颜色。

IsDisposed

获取一个值,该值指示对象是否已被释放。

IsOnDropDown

获取一个值,该值指示当前 Control 的容器是否是 ToolStripDropDown

IsOnOverflow

获取一个值,该值指示 Placement 属性是否设置为 Overflow

Margin

获取或设置项与相邻项之间的间距。

MergeAction

获取或设置如何将子菜单与父菜单合并。

MergeIndex

获取或设置合并的项在当前 ToolStrip 内的位置。

Name

获取或设置项的名称。

Overflow

获取或设置该项应附加到 ToolStripToolStripOverflowButton,还是漂浮在两者之间。

Owner

获取或设置此项的所有者。

OwnerItem

获取此 ToolStripItem 的父级 ToolStripItem

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)

创建一个对象,该对象包含生成用于与远程对象进行通信的代理所需的全部相关信息。

(继承自 MarshalByRefObject)
Dispose()

释放由 Component 使用的所有资源。

(继承自 Component)
Dispose(Boolean)

释放由 ToolStripItem 占用的非托管资源,还可以另外再释放托管资源。

DoDragDrop(Object, DragDropEffects)

开始拖放操作。

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

开始拖动操作。

Equals(Object)

确定指定对象是否等于当前对象。

(继承自 Object)
GetCurrentParent()

检索作为当前 ToolStrip 的容器的 ToolStripItem

GetHashCode()

作为默认哈希函数。

(继承自 Object)
GetLifetimeService()
已过时.

检索控制此实例的生存期策略的当前生存期服务对象。

(继承自 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()

ToolStripItem 生成 Click 事件。

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

当分配给 属性的 ICommand 的状态发生更改时CanExecute(Object)发生Command

CommandChanged

当属性的分配 ICommandCommand 更改时发生。

CommandParameterChanged

CommandParameter 属性的值更改后发生。

DisplayStyleChanged

DisplayStyle 更改后发生。

Disposed

在通过调用 Dispose() 方法释放组件时发生。

(继承自 Component)
DoubleClick

当用鼠标双击项时发生。

DragDrop

当用户拖动某项后再释放鼠标按钮时发生,指示此项应该被放入该项内。

DragEnter

当用户将某项拖动到该项的工作区内时发生。

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 事件。

适用于

另请参阅