ToolStripItem ToolStripItem ToolStripItem ToolStripItem Class

定义

表示的抽象基类,用于管理事件和布局的所有元素的ToolStripToolStripDropDown可以包含。Represents the abstract base class that manages events and layout for all the elements that a ToolStrip or ToolStripDropDown can contain.

public ref class ToolStripItem abstract : System::ComponentModel::Component, IDisposable, System::Windows::Forms::IDropTarget
public abstract class ToolStripItem : System.ComponentModel.Component, IDisposable, System.Windows.Forms.IDropTarget
type ToolStripItem = class
    inherit Component
    interface IDropTarget
    interface IComponent
    interface IDisposable
Public MustInherit Class ToolStripItem
Inherits Component
Implements IDisposable, IDropTarget
继承
派生
实现

示例

下面的代码示例演示如何实现一个自定义ToolStripItem控件。The following code example demonstrates how to implement a custom ToolStripItem control.

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
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是一个元素,如按钮、 组合框、 文本框中或可包含在中的标签ToolStrip控制或ToolStripDropDown控件,它是类似于 Windows 快捷菜单。A ToolStripItem is an element such as a button, combo box, text box, or label that can be contained in a ToolStrip control or a ToolStripDropDown control, which is similar to a Windows shortcut menu. ToolStrip类管理绘制和键盘和鼠标输入,包括拖放输入,这些元素和ToolStripItem类管理事件和这些元素本身内的布局。The ToolStrip class manages the painting and keyboard and mouse input, including drag-and-drop input, for these elements, and the ToolStripItem class manages events and layout within the elements themselves.

ToolStripItem 直接从继承的类ToolStripItem,或间接从继承ToolStripItem通过ToolStripControlHostToolStripDropDownItemToolStripItem classes either inherit directly from ToolStripItem, or they inherit indirectly from ToolStripItem through ToolStripControlHost or ToolStripDropDownItem.

ToolStripItem 控件必须包含在ToolStripMenuStripStatusStrip,或ContextMenuStrip和不能直接添加到窗体。ToolStripItem controls must be contained in a ToolStrip, MenuStrip, StatusStrip, or ContextMenuStrip and cannot be added directly to a form. 各种容器类旨在包含相应子集ToolStripItem控件。The various container classes are designed to contain an appropriate subset of ToolStripItem controls.

请注意给定ToolStripItem不能有多个父级ToolStripNote A given ToolStripItem cannot have more than one parent ToolStrip. 您必须将复制ToolStripItem并将其添加到其他ToolStrip控件。You must copy of the ToolStripItem and add it to other ToolStrip controls.

下表显示了派生的元素ToolStripItem类和它们因此可以承载于ToolStripToolStripDropDownThe following table shows the elements that derive from the ToolStripItem class and which therefore can be hosted in a ToolStrip or ToolStripDropDown.

元素Element 描述Description
ToolStripButton 支持图像和文本的工具栏按钮。A toolbar button that supports images and text.
ToolStripLabel 在状态栏中常用的文本标签或ToolStrip作为注释或标题。A text label typically used in a status bar or ToolStrip as a comment or title.
ToolStripSeparator 不可选择的空间或使用直观地对元素进行分组的竖线的空间。A non-selectable space or space with a vertical bar that visually groups elements.
ToolStripControlHost 一个ToolStripItem承载ToolStripComboBoxToolStripTextBoxToolStripProgressBar、 其他 Windows 窗体控件或自定义控件。A ToolStripItem that hosts a ToolStripComboBox, ToolStripTextBox, ToolStripProgressBar, other Windows Forms controls, or custom controls.

一个ToolStripComboBox是文本框中,用户可以在其中输入文本,以及用户可以从中选择要填充的文本框的文本的列表。A ToolStripComboBox is a text box in which the user can enter text, along with a list from which the user can select text to fill the text box.

一个ToolStripTextBox使用户能够输入文本。A ToolStripTextBox enables the user to enter text.

一个ToolStripProgressBar表示 Windows 进度栏控件中包含StatusStripA ToolStripProgressBar represents a Windows progress bar control contained in a StatusStrip.
ToolStripDropDownItem 一个ToolStripItem承载ToolStripMenuItemToolStripSplitButton,和ToolStripDropDownButtonA ToolStripItem that hosts a ToolStripMenuItem, ToolStripSplitButton, and ToolStripDropDownButton.

一个ToolStripMenuItem是菜单或上下文菜单上显示的可选选项。A ToolStripMenuItem is a selectable option displayed on a menu or context menu.

一个ToolStripSplitButton是常规按钮和下拉按钮的组合。A ToolStripSplitButton is a combination of a regular button and a drop-down button.

一个ToolStripDropDownButton是支持下拉列表功能的按钮。A ToolStripDropDownButton is a button that supports drop-down functionality.
ToolStripStatusLabel 中的一个面板StatusStrip控件。A panel in a StatusStrip control.

构造函数

ToolStripItem() ToolStripItem() ToolStripItem() ToolStripItem()

初始化 ToolStripItem 类的新实例。Initializes a new instance of the ToolStripItem class.

ToolStripItem(String, Image, EventHandler) ToolStripItem(String, Image, EventHandler) ToolStripItem(String, Image, EventHandler) ToolStripItem(String, Image, EventHandler)

初始化的新实例ToolStripItem类与指定的名称、 图像和事件处理程序。Initializes a new instance of the ToolStripItem class with the specified name, image, and event handler.

ToolStripItem(String, Image, EventHandler, String) ToolStripItem(String, Image, EventHandler, String) ToolStripItem(String, Image, EventHandler, String) ToolStripItem(String, Image, EventHandler, String)

初始化的新实例ToolStripItem类与指定的显示文本、 图像、 事件处理程序和名称。Initializes a new instance of the ToolStripItem class with the specified display text, image, event handler, and name.

属性

AccessibilityObject AccessibilityObject AccessibilityObject AccessibilityObject

获取分配给该控件的 AccessibleObjectGets the AccessibleObject assigned to the control.

AccessibleDefaultActionDescription AccessibleDefaultActionDescription AccessibleDefaultActionDescription AccessibleDefaultActionDescription

获取或设置控件的默认操作说明以供具有辅助功能的客户端应用程序使用。Gets or sets the default action description of the control for use by accessibility client applications.

AccessibleDescription AccessibleDescription AccessibleDescription AccessibleDescription

获取或设置将报告给具有辅助功能的客户端应用程序的说明。Gets or sets the description that will be reported to accessibility client applications.

AccessibleName AccessibleName AccessibleName AccessibleName

获取或设置供具有辅助功能的客户端应用程序使用的控件的名称。Gets or sets the name of the control for use by accessibility client applications.

AccessibleRole AccessibleRole AccessibleRole AccessibleRole

获取或设置控件的辅助性角色,该角色指定控件的用户界面元素的类型。Gets or sets the accessible role of the control, which specifies the type of user interface element of the control.

Alignment Alignment Alignment Alignment

获取或设置一个值,该值指示是否项对齐的开头或末尾ToolStripGets or sets a value indicating whether the item aligns towards the beginning or end of the ToolStrip.

AllowDrop AllowDrop AllowDrop AllowDrop

获取或设置一个值,该值指示是否通过你实现的事件来处理拖放和项重新排序。Gets or sets a value indicating whether drag-and-drop and item reordering are handled through events that you implement.

Anchor Anchor Anchor Anchor

获取或设置 ToolStripItem 要绑定到的容器的边缘,并确定 ToolStripItem 如何随其父级调整大小。Gets or sets the edges of the container to which a ToolStripItem is bound and determines how a ToolStripItem is resized with its parent.

AutoSize AutoSize AutoSize AutoSize

获取或设置一个值,该值指示是否自动调整项的大小。Gets or sets a value indicating whether the item is automatically sized.

AutoToolTip AutoToolTip AutoToolTip AutoToolTip

获取或设置一个值,该值指示是否使用该值Text属性或ToolTipText属性ToolStripItem工具提示。Gets or sets a value indicating whether to use the Text property or the ToolTipText property for the ToolStripItem ToolTip.

Available Available Available Available

获取或设置一个值,该值指示是否ToolStripItem而应放置ToolStripGets or sets a value indicating whether the ToolStripItem should be placed on a ToolStrip.

BackColor BackColor BackColor BackColor

获取或设置项的背景色。Gets or sets the background color for the item.

BackgroundImage BackgroundImage BackgroundImage BackgroundImage

获取或设置在项中显示的背景图像。Gets or sets the background image displayed in the item.

BackgroundImageLayout BackgroundImageLayout BackgroundImageLayout BackgroundImageLayout

获取或设置用于背景图像布局ToolStripItemGets or sets the background image layout used for the ToolStripItem.

Bounds Bounds Bounds Bounds

获取项的大小和位置。Gets the size and location of the item.

CanRaiseEvents CanRaiseEvents CanRaiseEvents CanRaiseEvents

获取一个指示组件是否可以引发事件的值。Gets a value indicating whether the component can raise an event.

(Inherited from Component)
CanSelect CanSelect CanSelect CanSelect

获取一个值,该值指示能否选择该项。Gets a value indicating whether the item can be selected.

Container Container Container Container

获取 IContainer,它包含 ComponentGets the IContainer that contains the Component.

(Inherited from Component)
ContentRectangle ContentRectangle ContentRectangle ContentRectangle

获取内容,如文本和图标,在可放置的位置的区域ToolStripItem而不覆盖背景边框。Gets the area where content, such as text and icons, can be placed within a ToolStripItem without overwriting background borders.

DefaultAutoToolTip DefaultAutoToolTip DefaultAutoToolTip DefaultAutoToolTip

获取一个值,该值指示是否显示ToolTip定义为默认值。Gets a value indicating whether to display the ToolTip that is defined as the default.

DefaultDisplayStyle DefaultDisplayStyle DefaultDisplayStyle DefaultDisplayStyle

获取一个值,该值上显示的内容ToolStripItemGets a value indicating what is displayed on the ToolStripItem.

DefaultMargin DefaultMargin DefaultMargin DefaultMargin

获取项的默认边距。Gets the default margin of an item.

DefaultPadding DefaultPadding DefaultPadding DefaultPadding

获取项的内部间距特征。Gets the internal spacing characteristics of the item.

DefaultSize DefaultSize DefaultSize DefaultSize

获取项的默认大小。Gets the default size of the item.

DesignMode DesignMode DesignMode DesignMode

获取一个值,用以指示 Component 当前是否处于设计模式。Gets a value that indicates whether the Component is currently in design mode.

(Inherited from Component)
DismissWhenClicked DismissWhenClicked DismissWhenClicked DismissWhenClicked

获取一个值,该值指示是否在项ToolStripDropDown会在被单击后隐藏。Gets a value indicating whether items on a ToolStripDropDown are hidden after they are clicked.

DisplayStyle DisplayStyle DisplayStyle DisplayStyle

获取或设置是否在显示的文本和图像ToolStripItemGets or sets whether text and images are displayed on a ToolStripItem.

Dock Dock Dock Dock

获取或设置要停靠在其父控件上的 ToolStripItem 边框,并确定 ToolStripItem 如何随其父控件一起调整大小。Gets or sets which ToolStripItem borders are docked to its parent control and determines how a ToolStripItem is resized with its parent.

DoubleClickEnabled DoubleClickEnabled DoubleClickEnabled DoubleClickEnabled

获取或设置一个值,该值指示是否ToolStripItem可以通过双击鼠标能否激活。Gets or sets a value indicating whether the ToolStripItem can be activated by double-clicking the mouse.

Enabled Enabled Enabled Enabled

获取或设置一个值,该值指示是否的父控件的ToolStripItem已启用。Gets or sets a value indicating whether the parent control of the ToolStripItem is enabled.

Events Events Events Events

获取附加到此 Component 的事件处理程序的列表。Gets the list of event handlers that are attached to this Component.

(Inherited from Component)
Font Font Font Font

获取或设置由该项显示的文本的字体。Gets or sets the font of the text displayed by the item.

ForeColor ForeColor ForeColor ForeColor

获取或设置项的前景色。Gets or sets the foreground color of the item.

Height Height Height Height

获取或设置的高度,以像素为单位的ToolStripItemGets or sets the height, in pixels, of a ToolStripItem.

Image Image Image Image

获取或设置显示的图像ToolStripItemGets or sets the image that is displayed on a ToolStripItem.

ImageAlign ImageAlign ImageAlign ImageAlign

获取或设置图像的对齐方式上ToolStripItemGets or sets the alignment of the image on a ToolStripItem.

ImageIndex ImageIndex ImageIndex ImageIndex

获取或设置在该项上显示的图像的索引值。Gets or sets the index value of the image that is displayed on the item.

ImageKey ImageKey ImageKey ImageKey

获取或设置中的图像的键访问器ImageList上显示的ToolStripItemGets or sets the key accessor for the image in the ImageList that is displayed on a ToolStripItem.

ImageScaling ImageScaling ImageScaling ImageScaling

获取或设置一个值,该值指示是否上的图像ToolStripItem自动调整大小以适应容器。Gets or sets a value indicating whether an image on a ToolStripItem is automatically resized to fit in a container.

ImageTransparentColor ImageTransparentColor ImageTransparentColor ImageTransparentColor

获取或设置要处理的颜色为透明效果在ToolStripItem映像。Gets or sets the color to treat as transparent in a ToolStripItem image.

IsDisposed IsDisposed IsDisposed IsDisposed

获取一个值,该值指示对象是否已被释放。Gets a value indicating whether the object has been disposed of.

IsOnDropDown IsOnDropDown IsOnDropDown IsOnDropDown

获取一个值,该值指示是否当前的容器ControlToolStripDropDownGets a value indicating whether the container of the current Control is a ToolStripDropDown.

IsOnOverflow IsOnOverflow IsOnOverflow IsOnOverflow

获取一个值,该值指示是否Placement属性设置为OverflowGets a value indicating whether the Placement property is set to Overflow.

Margin Margin Margin Margin

获取或设置项与相邻项之间的间距。Gets or sets the space between the item and adjacent items.

MergeAction MergeAction MergeAction MergeAction

获取或设置如何与父菜单合并子菜单。Gets or sets how child menus are merged with parent menus.

MergeIndex MergeIndex MergeIndex MergeIndex

获取或设置在当前合并项的位置ToolStripGets or sets the position of a merged item within the current ToolStrip.

Name Name Name Name

获取或设置项的名称。Gets or sets the name of the item.

Overflow Overflow Overflow Overflow

获取或设置该项应附加到是否ToolStripToolStripOverflowButton还是漂浮在两者之间。Gets or sets whether the item is attached to the ToolStrip or ToolStripOverflowButton or can float between the two.

Owner Owner Owner Owner

获取或设置此项的所有者。Gets or sets the owner of this item.

OwnerItem OwnerItem OwnerItem OwnerItem

获取此 ToolStripItem 的父级 ToolStripItemGets the parent ToolStripItem of this ToolStripItem.

Padding Padding Padding Padding

获取或设置项的内容与其边缘之间的内部间距(以像素为单位)。Gets or sets the internal spacing, in pixels, between the item's contents and its edges.

Parent Parent Parent Parent

获取或设置的父容器ToolStripItemGets or sets the parent container of the ToolStripItem.

Placement Placement Placement Placement

获取项的当前布局。Gets the current layout of the item.

Pressed Pressed Pressed Pressed

获取一个值,该值指示是否处于按下的项的状态。Gets a value indicating whether the state of the item is pressed.

RightToLeft RightToLeft RightToLeft RightToLeft

获取或设置一个值,该值指示项的放置顺序和文本的写入顺序是否均为从右向左。Gets or sets a value indicating whether items are to be placed from right to left and text is to be written from right to left.

RightToLeftAutoMirrorImage RightToLeftAutoMirrorImage RightToLeftAutoMirrorImage RightToLeftAutoMirrorImage

自动镜像ToolStripItem图像何时RightToLeft属性设置为YesMirrors automatically the ToolStripItem image when the RightToLeft property is set to Yes.

Selected Selected Selected Selected

获取一个值,该值指示该项是否处于选定状态。Gets a value indicating whether the item is selected.

ShowKeyboardCues ShowKeyboardCues ShowKeyboardCues ShowKeyboardCues

获取一个值,该值指示是显示还是隐藏快捷键。Gets a value indicating whether to show or hide shortcut keys.

Site Site Site Site

获取或设置 ComponentISiteGets or sets the ISite of the Component.

(Inherited from Component)
Size Size Size Size

获取或设置项的大小。Gets or sets the size of the item.

Tag Tag Tag Tag

获取或设置包含有关项的数据的对象。Gets or sets the object that contains data about the item.

Text Text Text Text

获取或设置要显示在项上的文本。Gets or sets the text that is to be displayed on the item.

TextAlign TextAlign TextAlign TextAlign

获取或设置文本的对齐方式上ToolStripLabelGets or sets the alignment of the text on a ToolStripLabel.

TextDirection TextDirection TextDirection TextDirection

获取上所用文本的方向ToolStripItemGets the orientation of text used on a ToolStripItem.

TextImageRelation TextImageRelation TextImageRelation TextImageRelation

获取或设置的位置ToolStripItem文本和图像相对于彼此。Gets or sets the position of ToolStripItem text and image relative to each other.

ToolTipText ToolTipText ToolTipText ToolTipText

获取或设置显示为文本ToolTip控件。Gets or sets the text that appears as a ToolTip for a control.

Visible Visible Visible Visible

获取或设置一个值,该值指示是否显示该项。Gets or sets a value indicating whether the item is displayed.

Width Width Width Width

获取或设置以像素为单位的宽度ToolStripItemGets or sets the width in pixels of a ToolStripItem.

方法

CreateAccessibilityInstance() CreateAccessibilityInstance() CreateAccessibilityInstance() CreateAccessibilityInstance()

ToolStripItem 创建一个新的辅助功能对象。Creates a new accessibility object for the ToolStripItem.

CreateObjRef(Type) CreateObjRef(Type) CreateObjRef(Type) CreateObjRef(Type)

创建一个对象,该对象包含生成用于与远程对象进行通信的代理所需的全部相关信息。Creates an object that contains all the relevant information required to generate a proxy used to communicate with a remote object.

(Inherited from MarshalByRefObject)
Dispose() Dispose() Dispose() Dispose()

释放由 Component 使用的所有资源。Releases all resources used by the Component.

(Inherited from Component)
Dispose(Boolean) Dispose(Boolean) Dispose(Boolean) Dispose(Boolean)

释放由 ToolStripItem 占用的非托管资源,还可以另外再释放托管资源。Releases the unmanaged resources used by the ToolStripItem and optionally releases the managed resources.

DoDragDrop(Object, DragDropEffects) DoDragDrop(Object, DragDropEffects) DoDragDrop(Object, DragDropEffects) DoDragDrop(Object, DragDropEffects)

开始拖放操作。Begins a drag-and-drop operation.

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

确定指定的对象是否等于当前对象。Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetCurrentParent() GetCurrentParent() GetCurrentParent() GetCurrentParent()

检索ToolStrip,它是当前的容器ToolStripItemRetrieves the ToolStrip that is the container of the current ToolStripItem.

GetHashCode() GetHashCode() GetHashCode() GetHashCode()

作为默认哈希函数。Serves as the default hash function.

(Inherited from Object)
GetLifetimeService() GetLifetimeService() GetLifetimeService() GetLifetimeService()

检索控制此实例的生存期策略的当前生存期服务对象。Retrieves the current lifetime service object that controls the lifetime policy for this instance.

(Inherited from MarshalByRefObject)
GetPreferredSize(Size) GetPreferredSize(Size) GetPreferredSize(Size) GetPreferredSize(Size)

检索可以容纳控件的矩形区域的大小。Retrieves the size of a rectangular area into which a control can be fit.

GetService(Type) GetService(Type) GetService(Type) GetService(Type)

返回一个对象,该对象表示由 Component 或它的 Container 提供的服务。Returns an object that represents a service provided by the Component or by its Container.

(Inherited from Component)
GetType() GetType() GetType() GetType()

获取当前实例的 TypeGets the Type of the current instance.

(Inherited from Object)
InitializeLifetimeService() InitializeLifetimeService() InitializeLifetimeService() InitializeLifetimeService()

获取生存期服务对象来控制此实例的生存期策略。Obtains a lifetime service object to control the lifetime policy for this instance.

(Inherited from MarshalByRefObject)
Invalidate() Invalidate() Invalidate() Invalidate()

使整个图面无效ToolStripItem并导致重绘该。Invalidates the entire surface of the ToolStripItem and causes it to be redrawn.

Invalidate(Rectangle) Invalidate(Rectangle) Invalidate(Rectangle) Invalidate(Rectangle)

使指定的区域无效ToolStripItem通过将其添加到更新区域的ToolStripItem,这是将在下次执行绘制操作,重新绘制的区域,将导致绘制消息发送到ToolStripItemInvalidates the specified region of the ToolStripItem by adding it to the update region of the ToolStripItem, which is the area that will be repainted at the next paint operation, and causes a paint message to be sent to the ToolStripItem.

IsInputChar(Char) IsInputChar(Char) IsInputChar(Char) IsInputChar(Char)

确定字符是否为该项可识别的输入字符。Determines whether a character is an input character that the item recognizes.

IsInputKey(Keys) IsInputKey(Keys) IsInputKey(Keys) IsInputKey(Keys)

确定指定的键是常规输入键还是需要预处理的特殊键。Determines whether the specified key is a regular input key or a special key that requires preprocessing.

MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

创建当前 Object 的浅表副本。Creates a shallow copy of the current Object.

(Inherited from Object)
MemberwiseClone(Boolean) MemberwiseClone(Boolean) MemberwiseClone(Boolean) MemberwiseClone(Boolean)

创建当前 MarshalByRefObject 对象的浅表副本。Creates a shallow copy of the current MarshalByRefObject object.

(Inherited from MarshalByRefObject)
OnAvailableChanged(EventArgs) OnAvailableChanged(EventArgs) OnAvailableChanged(EventArgs) OnAvailableChanged(EventArgs)

引发 AvailableChanged 事件。Raises the AvailableChanged event.

OnBackColorChanged(EventArgs) OnBackColorChanged(EventArgs) OnBackColorChanged(EventArgs) OnBackColorChanged(EventArgs)

引发 BackColorChanged 事件。Raises the BackColorChanged event.

OnBoundsChanged() OnBoundsChanged() OnBoundsChanged() OnBoundsChanged()

Bounds 属性更改时发生。Occurs when the Bounds property changes.

OnClick(EventArgs) OnClick(EventArgs) OnClick(EventArgs) OnClick(EventArgs)

引发 Click 事件。Raises the Click event.

OnDisplayStyleChanged(EventArgs) OnDisplayStyleChanged(EventArgs) OnDisplayStyleChanged(EventArgs) OnDisplayStyleChanged(EventArgs)

引发 DisplayStyleChanged 事件。Raises the DisplayStyleChanged event.

OnDoubleClick(EventArgs) OnDoubleClick(EventArgs) OnDoubleClick(EventArgs) OnDoubleClick(EventArgs)

引发 DoubleClick 事件。Raises the DoubleClick event.

OnDragDrop(DragEventArgs) OnDragDrop(DragEventArgs) OnDragDrop(DragEventArgs) OnDragDrop(DragEventArgs)

引发 DragDrop 事件。Raises the DragDrop event.

OnDragEnter(DragEventArgs) OnDragEnter(DragEventArgs) OnDragEnter(DragEventArgs) OnDragEnter(DragEventArgs)

引发 DragEnter 事件。Raises the DragEnter event.

OnDragLeave(EventArgs) OnDragLeave(EventArgs) OnDragLeave(EventArgs) OnDragLeave(EventArgs)

引发 DragLeave 事件。Raises the DragLeave event.

OnDragOver(DragEventArgs) OnDragOver(DragEventArgs) OnDragOver(DragEventArgs) OnDragOver(DragEventArgs)

引发 DragOver 事件。Raises the DragOver event.

OnEnabledChanged(EventArgs) OnEnabledChanged(EventArgs) OnEnabledChanged(EventArgs) OnEnabledChanged(EventArgs)

引发 EnabledChanged 事件。Raises the EnabledChanged event.

OnFontChanged(EventArgs) OnFontChanged(EventArgs) OnFontChanged(EventArgs) OnFontChanged(EventArgs)

引发 FontChanged 事件。Raises the FontChanged event.

OnForeColorChanged(EventArgs) OnForeColorChanged(EventArgs) OnForeColorChanged(EventArgs) OnForeColorChanged(EventArgs)

引发 ForeColorChanged 事件。Raises the ForeColorChanged event.

OnGiveFeedback(GiveFeedbackEventArgs) OnGiveFeedback(GiveFeedbackEventArgs) OnGiveFeedback(GiveFeedbackEventArgs) OnGiveFeedback(GiveFeedbackEventArgs)

引发 GiveFeedback 事件。Raises the GiveFeedback event.

OnLayout(LayoutEventArgs) OnLayout(LayoutEventArgs) OnLayout(LayoutEventArgs) OnLayout(LayoutEventArgs)

引发 Layout 事件。Raises the Layout event.

OnLocationChanged(EventArgs) OnLocationChanged(EventArgs) OnLocationChanged(EventArgs) OnLocationChanged(EventArgs)

引发 LocationChanged 事件。Raises the LocationChanged event.

OnMouseDown(MouseEventArgs) OnMouseDown(MouseEventArgs) OnMouseDown(MouseEventArgs) OnMouseDown(MouseEventArgs)

引发 MouseDown 事件。Raises the MouseDown event.

OnMouseEnter(EventArgs) OnMouseEnter(EventArgs) OnMouseEnter(EventArgs) OnMouseEnter(EventArgs)

引发 MouseEnter 事件。Raises the MouseEnter event.

OnMouseHover(EventArgs) OnMouseHover(EventArgs) OnMouseHover(EventArgs) OnMouseHover(EventArgs)

引发 MouseHover 事件。Raises the MouseHover event.

OnMouseLeave(EventArgs) OnMouseLeave(EventArgs) OnMouseLeave(EventArgs) OnMouseLeave(EventArgs)

引发 MouseLeave 事件。Raises the MouseLeave event.

OnMouseMove(MouseEventArgs) OnMouseMove(MouseEventArgs) OnMouseMove(MouseEventArgs) OnMouseMove(MouseEventArgs)

引发 MouseMove 事件。Raises the MouseMove event.

OnMouseUp(MouseEventArgs) OnMouseUp(MouseEventArgs) OnMouseUp(MouseEventArgs) OnMouseUp(MouseEventArgs)

引发 MouseUp 事件。Raises the MouseUp event.

OnOwnerChanged(EventArgs) OnOwnerChanged(EventArgs) OnOwnerChanged(EventArgs) OnOwnerChanged(EventArgs)

引发 OwnerChanged 事件。Raises the OwnerChanged event.

OnOwnerFontChanged(EventArgs) OnOwnerFontChanged(EventArgs) OnOwnerFontChanged(EventArgs) OnOwnerFontChanged(EventArgs)

将引发FontChanged事件时Font属性已更改的父级上ToolStripItemRaises the FontChanged event when the Font property has changed on the parent of the ToolStripItem.

OnPaint(PaintEventArgs) OnPaint(PaintEventArgs) OnPaint(PaintEventArgs) OnPaint(PaintEventArgs)

引发 Paint 事件。Raises the Paint event.

OnParentBackColorChanged(EventArgs) OnParentBackColorChanged(EventArgs) OnParentBackColorChanged(EventArgs) OnParentBackColorChanged(EventArgs)

引发 BackColorChanged 事件。Raises the BackColorChanged event.

OnParentChanged(ToolStrip, ToolStrip) OnParentChanged(ToolStrip, ToolStrip) OnParentChanged(ToolStrip, ToolStrip) OnParentChanged(ToolStrip, ToolStrip)

引发 ParentChanged 事件。Raises the ParentChanged event.

OnParentEnabledChanged(EventArgs) OnParentEnabledChanged(EventArgs) OnParentEnabledChanged(EventArgs) OnParentEnabledChanged(EventArgs)

将引发EnabledChanged事件时Enabled属性值的项容器更改。Raises the EnabledChanged event when the Enabled property value of the item's container changes.

OnParentForeColorChanged(EventArgs) OnParentForeColorChanged(EventArgs) OnParentForeColorChanged(EventArgs) OnParentForeColorChanged(EventArgs)

引发 ForeColorChanged 事件。Raises the ForeColorChanged event.

OnParentRightToLeftChanged(EventArgs) OnParentRightToLeftChanged(EventArgs) OnParentRightToLeftChanged(EventArgs) OnParentRightToLeftChanged(EventArgs)

引发 RightToLeftChanged 事件。Raises the RightToLeftChanged event.

OnQueryContinueDrag(QueryContinueDragEventArgs) OnQueryContinueDrag(QueryContinueDragEventArgs) OnQueryContinueDrag(QueryContinueDragEventArgs) OnQueryContinueDrag(QueryContinueDragEventArgs)

引发 QueryContinueDrag 事件。Raises the QueryContinueDrag event.

OnRightToLeftChanged(EventArgs) OnRightToLeftChanged(EventArgs) OnRightToLeftChanged(EventArgs) OnRightToLeftChanged(EventArgs)

引发 RightToLeftChanged 事件。Raises the RightToLeftChanged event.

OnTextChanged(EventArgs) OnTextChanged(EventArgs) OnTextChanged(EventArgs) OnTextChanged(EventArgs)

引发 TextChanged 事件。Raises the TextChanged event.

OnVisibleChanged(EventArgs) OnVisibleChanged(EventArgs) OnVisibleChanged(EventArgs) OnVisibleChanged(EventArgs)

引发 VisibleChanged 事件。Raises the VisibleChanged event.

PerformClick() PerformClick() PerformClick() PerformClick()

ToolStripItem 生成 Click 事件。Generates a Click event for a ToolStripItem.

ProcessCmdKey(Message, Keys) ProcessCmdKey(Message, Keys) ProcessCmdKey(Message, Keys) ProcessCmdKey(Message, Keys)

处理命令键。Processes a command key.

ProcessDialogKey(Keys) ProcessDialogKey(Keys) ProcessDialogKey(Keys) ProcessDialogKey(Keys)

处理对话框键。Processes a dialog key.

ProcessMnemonic(Char) ProcessMnemonic(Char) ProcessMnemonic(Char) ProcessMnemonic(Char)

处理助记键字符。Processes a mnemonic character.

ResetBackColor() ResetBackColor() ResetBackColor() ResetBackColor()

此方法与此类无关。This method is not relevant to this class.

ResetDisplayStyle() ResetDisplayStyle() ResetDisplayStyle() ResetDisplayStyle()

此方法与此类无关。This method is not relevant to this class.

ResetFont() ResetFont() ResetFont() ResetFont()

此方法与此类无关。This method is not relevant to this class.

ResetForeColor() ResetForeColor() ResetForeColor() ResetForeColor()

此方法与此类无关。This method is not relevant to this class.

ResetImage() ResetImage() ResetImage() ResetImage()

此方法与此类无关。This method is not relevant to this class.

ResetMargin() ResetMargin() ResetMargin() ResetMargin()

此方法与此类无关。This method is not relevant to this class.

ResetPadding() ResetPadding() ResetPadding() ResetPadding()

此方法与此类无关。This method is not relevant to this class.

ResetRightToLeft() ResetRightToLeft() ResetRightToLeft() ResetRightToLeft()

此方法与此类无关。This method is not relevant to this class.

ResetTextDirection() ResetTextDirection() ResetTextDirection() ResetTextDirection()

此方法与此类无关。This method is not relevant to this class.

Select() Select() Select() Select()

选择项。Selects the item.

SetBounds(Rectangle) SetBounds(Rectangle) SetBounds(Rectangle) SetBounds(Rectangle)

设置项的大小和位置。Sets the size and location of the item.

SetVisibleCore(Boolean) SetVisibleCore(Boolean) SetVisibleCore(Boolean) SetVisibleCore(Boolean)

ToolStripItem 设置为指定的可见状态。Sets the ToolStripItem to the specified visible state.

ToString() ToString() ToString() ToString()

返回包含 Component 的名称的 String(如果有)。Returns a String containing the name of the Component, if any. 不应重写此方法。This method should not be overridden.

事件

AvailableChanged AvailableChanged AvailableChanged AvailableChanged

Available 属性的值更改时发生。Occurs when the value of the Available property changes.

BackColorChanged BackColorChanged BackColorChanged BackColorChanged

BackColor 属性的值更改时发生。Occurs when the value of the BackColor property changes.

Click Click Click Click

在单击 ToolStripItem 时发生。Occurs when the ToolStripItem is clicked.

DisplayStyleChanged DisplayStyleChanged DisplayStyleChanged DisplayStyleChanged

DisplayStyle 更改后发生。Occurs when the DisplayStyle has changed.

Disposed Disposed Disposed Disposed

当通过调用 Dispose() 方法释放组件时发生。Occurs when the component is disposed by a call to the Dispose() method.

(Inherited from Component)
DoubleClick DoubleClick DoubleClick DoubleClick

当用鼠标双击项时发生。Occurs when the item is double-clicked with the mouse.

DragDrop DragDrop DragDrop DragDrop

当用户拖动某项后再释放鼠标按钮时发生,指示此项应该被放入该项内。Occurs when the user drags an item and the user releases the mouse button, indicating that the item should be dropped into this item.

DragEnter DragEnter DragEnter DragEnter

当用户将某项拖动到该项的工作区内时发生。Occurs when the user drags an item into the client area of this item.

DragLeave DragLeave DragLeave DragLeave

当用户拖动某项并且鼠标指针不再悬停在此项的工作区上方时发生。Occurs when the user drags an item and the mouse pointer is no longer over the client area of this item.

DragOver DragOver DragOver DragOver

当用户将某项拖动到此项的工作区上方时发生。Occurs when the user drags an item over the client area of this item.

EnabledChanged EnabledChanged EnabledChanged EnabledChanged

Enabled 属性值更改后发生。Occurs when the Enabled property value has changed.

ForeColorChanged ForeColorChanged ForeColorChanged ForeColorChanged

ForeColor 属性值更改时发生。Occurs when the ForeColor property value changes.

GiveFeedback GiveFeedback GiveFeedback GiveFeedback

在执行拖动操作期间发生。Occurs during a drag operation.

LocationChanged LocationChanged LocationChanged LocationChanged

发生时的位置ToolStripItem更新。Occurs when the location of a ToolStripItem is updated.

MouseDown MouseDown MouseDown MouseDown

当鼠标指针放置在该项上时,在按鼠标按钮时发生。Occurs when the mouse pointer is over the item and a mouse button is pressed.

MouseEnter MouseEnter MouseEnter MouseEnter

在鼠标指针进入项时发生。Occurs when the mouse pointer enters the item.

MouseHover MouseHover MouseHover MouseHover

当鼠标指针悬停在项上时发生。Occurs when the mouse pointer hovers over the item.

MouseLeave MouseLeave MouseLeave MouseLeave

当鼠标指针离开项时发生。Occurs when the mouse pointer leaves the item.

MouseMove MouseMove MouseMove MouseMove

当鼠标指针移到该项上时发生。Occurs when the mouse pointer is moved over the item.

MouseUp MouseUp MouseUp MouseUp

当鼠标指针位于该项上时,在松开鼠标按钮时发生。Occurs when the mouse pointer is over the item and a mouse button is released.

OwnerChanged OwnerChanged OwnerChanged OwnerChanged

Owner 属性更改时发生。Occurs when the Owner property changes.

Paint Paint Paint Paint

在重绘项时发生。Occurs when the item is redrawn.

QueryAccessibilityHelp QueryAccessibilityHelp QueryAccessibilityHelp QueryAccessibilityHelp

辅助功能客户端应用程序调用的帮助时,会发生ToolStripItemOccurs when an accessibility client application invokes help for the ToolStripItem.

QueryContinueDrag QueryContinueDrag QueryContinueDrag QueryContinueDrag

在拖放操作期间发生,并且允许拖动源确定是否应取消拖放操作。Occurs during a drag-and-drop operation and allows the drag source to determine whether the drag-and-drop operation should be canceled.

RightToLeftChanged RightToLeftChanged RightToLeftChanged RightToLeftChanged

RightToLeft 属性值更改时发生。Occurs when the RightToLeft property value changes.

TextChanged TextChanged TextChanged TextChanged

Text 属性的值更改时发生。Occurs when the value of the Text property changes.

VisibleChanged VisibleChanged VisibleChanged VisibleChanged

Visible 属性的值更改时发生。Occurs when the value of the Visible property changes.

显式界面实现

IDropTarget.OnDragDrop(DragEventArgs) IDropTarget.OnDragDrop(DragEventArgs) IDropTarget.OnDragDrop(DragEventArgs) IDropTarget.OnDragDrop(DragEventArgs)

引发 DragDrop 事件。Raises the DragDrop event.

IDropTarget.OnDragEnter(DragEventArgs) IDropTarget.OnDragEnter(DragEventArgs) IDropTarget.OnDragEnter(DragEventArgs) IDropTarget.OnDragEnter(DragEventArgs)

引发 DragEnter 事件。Raises the DragEnter event.

IDropTarget.OnDragLeave(EventArgs) IDropTarget.OnDragLeave(EventArgs) IDropTarget.OnDragLeave(EventArgs) IDropTarget.OnDragLeave(EventArgs)

引发 DragLeave 事件。Raises the DragLeave event.

IDropTarget.OnDragOver(DragEventArgs) IDropTarget.OnDragOver(DragEventArgs) IDropTarget.OnDragOver(DragEventArgs) IDropTarget.OnDragOver(DragEventArgs)

引发 DragOver 事件。Raises the DragOver event.

适用于

另请参阅