Actualización: noviembre 2007
Proporciona funcionalidad básica a los controles que muestran un control ToolStripDropDown cuando se hace clic en un control ToolStripDropDownButton, ToolStripMenuItem o ToolStripSplitButton.
Ensamblado: System.Windows.Forms (en System.Windows.Forms.dll)
Public MustInherit Class ToolStripDropDownItem _ Inherits ToolStripItem
Dim instance As ToolStripDropDownItem
public abstract class ToolStripDropDownItem : ToolStripItem
public ref class ToolStripDropDownItem abstract : public ToolStripItem
public abstract class ToolStripDropDownItem extends ToolStripItem
public abstract class ToolStripDropDownItem extends ToolStripItem
ToolStripDropDownItem es la clase base abstracta de ToolStripMenuItem, ToolStripDropDownButton y ToolStripSplitButton, que puede hospedar elementos directamente o hospedar elementos adicionales en un contenedor desplegable. Para ello, establezca la propiedad DropDown en un ToolStripDropDown y establezca la propiedad Items del ToolStripDropDown. Obtenga acceso a estos elementos desplegables directamente a través de la propiedad DropDownItems.
En el ejemplo de código siguiente se muestra cómo mostrar y ocultar controles ToolStripMenuItem.
Imports System Imports System.Collections.Generic Imports System.ComponentModel Imports System.Drawing Imports System.Windows.Forms Public Class Form1 Inherits Form Private toolStrip1 As ToolStrip Private statusStrip1 As StatusStrip Private toolStripStatusLabel1 As ToolStripStatusLabel Private contextMenuStrip1 As ContextMenuStrip Private menuItem1ToolStripMenuItem As ToolStripMenuItem Private menuItem2ToolStripMenuItem As ToolStripMenuItem Private subItemToolStripMenuItem As ToolStripMenuItem Private subItem2ToolStripMenuItem As ToolStripMenuItem Private WithEvents showButton As Button Private WithEvents hideButton As Button Private components As System.ComponentModel.IContainer = Nothing Public Sub New() InitializeComponent() Me.InitializeToolStripDropDownItems() End Sub ' This utility method creates and initializes three ' ToolStripDropDownItem controls and adds them ' to the form's ToolStrip control. Private Sub InitializeToolStripDropDownItems() Dim b As New ToolStripDropDownButton("DropDownButton") b.DropDown = Me.contextMenuStrip1 AddHandler b.DropDownClosed, AddressOf toolStripDropDownItem_DropDownClosed AddHandler b.DropDownItemClicked, AddressOf toolStripDropDownItem_DropDownItemClicked AddHandler b.DropDownOpened, AddressOf toolStripDropDownItem_DropDownOpened Dim m As New ToolStripMenuItem("MenuItem") m.DropDown = Me.contextMenuStrip1 AddHandler m.DropDownClosed, AddressOf toolStripDropDownItem_DropDownClosed AddHandler m.DropDownItemClicked, AddressOf toolStripDropDownItem_DropDownItemClicked AddHandler m.DropDownOpened, AddressOf toolStripDropDownItem_DropDownOpened Dim sb As New ToolStripSplitButton("SplitButton") sb.DropDown = Me.contextMenuStrip1 AddHandler sb.DropDownClosed, AddressOf toolStripDropDownItem_DropDownClosed AddHandler sb.DropDownItemClicked, AddressOf toolStripDropDownItem_DropDownItemClicked AddHandler sb.DropDownOpened, AddressOf toolStripDropDownItem_DropDownOpened Me.toolStrip1.Items.AddRange(New ToolStripItem() {b, m, sb}) End Sub ' This method handles the DropDownOpened event from a ' ToolStripDropDownItem. It displays the value of the ' item's Text property in the form's StatusStrip control. Private Sub toolStripDropDownItem_DropDownOpened(ByVal sender As Object, ByVal e As EventArgs) Dim item As ToolStripDropDownItem = CType(sender, ToolStripDropDownItem) Dim msg As String = String.Format("Item opened: {0}", item.Text) Me.toolStripStatusLabel1.Text = msg End Sub ' This method handles the DropDownItemClicked event from a ' ToolStripDropDownItem. It displays the value of the clicked ' item's Text property in the form's StatusStrip control. Private Sub toolStripDropDownItem_DropDownItemClicked( _ ByVal sender As Object, _ ByVal e As ToolStripItemClickedEventArgs) Dim msg As String = String.Format("Item clicked: {0}", e.ClickedItem.Text) Me.toolStripStatusLabel1.Text = msg End Sub ' This method handles the DropDownClosed event from a ' ToolStripDropDownItem. It displays the value of the ' item's Text property in the form's StatusStrip control. Private Sub toolStripDropDownItem_DropDownClosed(ByVal sender As Object, ByVal e As EventArgs) Dim item As ToolStripDropDownItem = CType(sender, ToolStripDropDownItem) Dim msg As String = String.Format("Item closed: {0}", item.Text) Me.toolStripStatusLabel1.Text = msg End Sub ' This method shows the drop-down for the first item ' in the form's ToolStrip. Private Sub showButton_Click( _ ByVal sender As Object, _ ByVal e As EventArgs) _ Handles showButton.Click Dim item As ToolStripDropDownItem = CType(Me.toolStrip1.Items(0), ToolStripDropDownItem) If item.HasDropDownItems Then item.ShowDropDown() End If End Sub ' This method hides the drop-down for the first item ' in the form's ToolStrip. Private Sub hideButton_Click( _ ByVal sender As Object, _ ByVal e As EventArgs) _ Handles hideButton.Click Dim item As ToolStripDropDownItem = CType(Me.toolStrip1.Items(0), ToolStripDropDownItem) item.HideDropDown() End Sub 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.components = New System.ComponentModel.Container() Me.toolStrip1 = New System.Windows.Forms.ToolStrip() Me.statusStrip1 = New System.Windows.Forms.StatusStrip() Me.toolStripStatusLabel1 = New System.Windows.Forms.ToolStripStatusLabel() Me.contextMenuStrip1 = New System.Windows.Forms.ContextMenuStrip(Me.components) Me.menuItem1ToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() Me.menuItem2ToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() Me.subItemToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() Me.subItem2ToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() Me.showButton = New System.Windows.Forms.Button() Me.hideButton = New System.Windows.Forms.Button() Me.statusStrip1.SuspendLayout() Me.contextMenuStrip1.SuspendLayout() Me.SuspendLayout() ' ' toolStrip1 ' Me.toolStrip1.Location = New System.Drawing.Point(0, 0) Me.toolStrip1.Name = "toolStrip1" Me.toolStrip1.Size = New System.Drawing.Size(292, 25) Me.toolStrip1.TabIndex = 0 Me.toolStrip1.Text = "toolStrip1" ' ' statusStrip1 ' Me.statusStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.toolStripStatusLabel1}) Me.statusStrip1.Location = New System.Drawing.Point(0, 251) Me.statusStrip1.Name = "statusStrip1" Me.statusStrip1.Size = New System.Drawing.Size(292, 22) Me.statusStrip1.TabIndex = 1 Me.statusStrip1.Text = "statusStrip1" ' ' toolStripStatusLabel1 ' Me.toolStripStatusLabel1.Name = "toolStripStatusLabel1" Me.toolStripStatusLabel1.Size = New System.Drawing.Size(38, 17) Me.toolStripStatusLabel1.Text = "Ready" ' ' contextMenuStrip1 ' Me.contextMenuStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.menuItem1ToolStripMenuItem, Me.menuItem2ToolStripMenuItem}) Me.contextMenuStrip1.Name = "contextMenuStrip1" Me.contextMenuStrip1.RightToLeft = System.Windows.Forms.RightToLeft.No Me.contextMenuStrip1.Size = New System.Drawing.Size(146, 48) ' ' menuItem1ToolStripMenuItem ' Me.menuItem1ToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.subItemToolStripMenuItem}) Me.menuItem1ToolStripMenuItem.Name = "menuItem1ToolStripMenuItem" Me.menuItem1ToolStripMenuItem.Size = New System.Drawing.Size(145, 22) Me.menuItem1ToolStripMenuItem.Text = "Menu Item1" ' ' menuItem2ToolStripMenuItem ' Me.menuItem2ToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.subItem2ToolStripMenuItem}) Me.menuItem2ToolStripMenuItem.Name = "menuItem2ToolStripMenuItem" Me.menuItem2ToolStripMenuItem.Size = New System.Drawing.Size(145, 22) Me.menuItem2ToolStripMenuItem.Text = "Menu Item 2" ' ' subItemToolStripMenuItem ' Me.subItemToolStripMenuItem.Name = "subItemToolStripMenuItem" Me.subItemToolStripMenuItem.Size = New System.Drawing.Size(152, 22) Me.subItemToolStripMenuItem.Text = "Sub Item" ' ' subItem2ToolStripMenuItem ' Me.subItem2ToolStripMenuItem.Name = "subItem2ToolStripMenuItem" Me.subItem2ToolStripMenuItem.Size = New System.Drawing.Size(152, 22) Me.subItem2ToolStripMenuItem.Text = "Sub Item2" ' ' showButton ' Me.showButton.Location = New System.Drawing.Point(12, 180) Me.showButton.Name = "showButton" Me.showButton.Size = New System.Drawing.Size(75, 23) Me.showButton.TabIndex = 2 Me.showButton.Text = "Show" Me.showButton.UseVisualStyleBackColor = True ' ' hideButton ' Me.hideButton.Location = New System.Drawing.Point(12, 209) Me.hideButton.Name = "hideButton" Me.hideButton.Size = New System.Drawing.Size(75, 23) Me.hideButton.TabIndex = 3 Me.hideButton.Text = "Hide" Me.hideButton.UseVisualStyleBackColor = True ' ' Form1 ' Me.AutoScaleDimensions = New System.Drawing.SizeF(6F, 13F) Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font Me.ClientSize = New System.Drawing.Size(292, 273) Me.Controls.Add(statusStrip1) Me.Controls.Add(hideButton) Me.Controls.Add(toolStrip1) Me.Controls.Add(showButton) Me.Name = "Form1" Me.Text = "Form1" Me.statusStrip1.ResumeLayout(False) Me.statusStrip1.PerformLayout() Me.contextMenuStrip1.ResumeLayout(False) Me.ResumeLayout(False) Me.PerformLayout() End Sub #End Region End Class Public Class Program ' <summary> ' The main entry point for the application. ' </summary> <STAThread()> _ Shared Sub Main() Application.EnableVisualStyles() Application.SetCompatibleTextRenderingDefault(False) Application.Run(New Form1()) End Sub End Class
using System; using System.Collections.Generic; using System.ComponentModel; using System.Drawing; using System.Windows.Forms; namespace ToolStripDropDownItemCS { public class Form1 : Form { private ToolStrip toolStrip1; private StatusStrip statusStrip1; private ToolStripStatusLabel toolStripStatusLabel1; private ContextMenuStrip contextMenuStrip1; private ToolStripMenuItem menuItem1ToolStripMenuItem; private ToolStripMenuItem menuItem2ToolStripMenuItem; private ToolStripMenuItem subItemToolStripMenuItem; private ToolStripMenuItem subItem2ToolStripMenuItem; private Button showButton; private Button hideButton; private System.ComponentModel.IContainer components = null; public Form1() { InitializeComponent(); this.InitializeToolStripDropDownItems(); } // This utility method creates and initializes three // ToolStripDropDownItem controls and adds them // to the form's ToolStrip control. private void InitializeToolStripDropDownItems() { ToolStripDropDownButton b = new ToolStripDropDownButton("DropDownButton"); b.DropDown = this.contextMenuStrip1; b.DropDownClosed += new EventHandler(toolStripDropDownItem_DropDownClosed); b.DropDownItemClicked += new ToolStripItemClickedEventHandler(toolStripDropDownItem_DropDownItemClicked); b.DropDownOpened += new EventHandler(toolStripDropDownItem_DropDownOpened); ToolStripMenuItem m = new ToolStripMenuItem("MenuItem"); m.DropDown = this.contextMenuStrip1; m.DropDownClosed += new EventHandler(toolStripDropDownItem_DropDownClosed); m.DropDownItemClicked += new ToolStripItemClickedEventHandler(toolStripDropDownItem_DropDownItemClicked); m.DropDownOpened += new EventHandler(toolStripDropDownItem_DropDownOpened); ToolStripSplitButton sb = new ToolStripSplitButton("SplitButton"); sb.DropDown = this.contextMenuStrip1; sb.DropDownClosed += new EventHandler(toolStripDropDownItem_DropDownClosed); sb.DropDownItemClicked += new ToolStripItemClickedEventHandler(toolStripDropDownItem_DropDownItemClicked); sb.DropDownOpened += new EventHandler(toolStripDropDownItem_DropDownOpened); this.toolStrip1.Items.AddRange(new ToolStripItem[] { b, m, sb }); } // This method handles the DropDownOpened event from a // ToolStripDropDownItem. It displays the value of the // item's Text property in the form's StatusStrip control. void toolStripDropDownItem_DropDownOpened(object sender, EventArgs e) { ToolStripDropDownItem item = sender as ToolStripDropDownItem; string msg = String.Format("Item opened: {0}", item.Text); this.toolStripStatusLabel1.Text = msg; } // This method handles the DropDownItemClicked event from a // ToolStripDropDownItem. It displays the value of the clicked // item's Text property in the form's StatusStrip control. void toolStripDropDownItem_DropDownItemClicked(object sender, ToolStripItemClickedEventArgs e) { string msg = String.Format("Item clicked: {0}", e.ClickedItem.Text); this.toolStripStatusLabel1.Text = msg; } // This method handles the DropDownClosed event from a // ToolStripDropDownItem. It displays the value of the // item's Text property in the form's StatusStrip control. void toolStripDropDownItem_DropDownClosed(object sender, EventArgs e) { ToolStripDropDownItem item = sender as ToolStripDropDownItem; string msg = String.Format("Item closed: {0}", item.Text); this.toolStripStatusLabel1.Text = msg; } // This method shows the drop-down for the first item // in the form's ToolStrip. private void showButton_Click(object sender, EventArgs e) { ToolStripDropDownItem item = this.toolStrip1.Items[0] as ToolStripDropDownItem; if (item.HasDropDownItems) { item.ShowDropDown(); } } // This method hides the drop-down for the first item // in the form's ToolStrip. private void hideButton_Click(object sender, EventArgs e) { ToolStripDropDownItem item = this.toolStrip1.Items[0] as ToolStripDropDownItem; item.HideDropDown(); } 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.components = new System.ComponentModel.Container(); this.toolStrip1 = new System.Windows.Forms.ToolStrip(); this.statusStrip1 = new System.Windows.Forms.StatusStrip(); this.toolStripStatusLabel1 = new System.Windows.Forms.ToolStripStatusLabel(); this.contextMenuStrip1 = new System.Windows.Forms.ContextMenuStrip(this.components); this.menuItem1ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.menuItem2ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.subItemToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.subItem2ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.showButton = new System.Windows.Forms.Button(); this.hideButton = new System.Windows.Forms.Button(); this.statusStrip1.SuspendLayout(); this.contextMenuStrip1.SuspendLayout(); this.SuspendLayout(); // // toolStrip1 // this.toolStrip1.Location = new System.Drawing.Point(0, 0); this.toolStrip1.Name = "toolStrip1"; this.toolStrip1.Size = new System.Drawing.Size(292, 25); this.toolStrip1.TabIndex = 0; this.toolStrip1.Text = "toolStrip1"; // // statusStrip1 // this.statusStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { this.toolStripStatusLabel1}); this.statusStrip1.Location = new System.Drawing.Point(0, 251); this.statusStrip1.Name = "statusStrip1"; this.statusStrip1.Size = new System.Drawing.Size(292, 22); this.statusStrip1.TabIndex = 1; this.statusStrip1.Text = "statusStrip1"; // // toolStripStatusLabel1 // this.toolStripStatusLabel1.Name = "toolStripStatusLabel1"; this.toolStripStatusLabel1.Size = new System.Drawing.Size(38, 17); this.toolStripStatusLabel1.Text = "Ready"; // // contextMenuStrip1 // this.contextMenuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { this.menuItem1ToolStripMenuItem, this.menuItem2ToolStripMenuItem}); this.contextMenuStrip1.Name = "contextMenuStrip1"; this.contextMenuStrip1.RightToLeft = System.Windows.Forms.RightToLeft.No; this.contextMenuStrip1.Size = new System.Drawing.Size(146, 48); // // menuItem1ToolStripMenuItem // this.menuItem1ToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.subItemToolStripMenuItem}); this.menuItem1ToolStripMenuItem.Name = "menuItem1ToolStripMenuItem"; this.menuItem1ToolStripMenuItem.Size = new System.Drawing.Size(145, 22); this.menuItem1ToolStripMenuItem.Text = "Menu Item1"; // // menuItem2ToolStripMenuItem // this.menuItem2ToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.subItem2ToolStripMenuItem}); this.menuItem2ToolStripMenuItem.Name = "menuItem2ToolStripMenuItem"; this.menuItem2ToolStripMenuItem.Size = new System.Drawing.Size(145, 22); this.menuItem2ToolStripMenuItem.Text = "Menu Item 2"; // // subItemToolStripMenuItem // this.subItemToolStripMenuItem.Name = "subItemToolStripMenuItem"; this.subItemToolStripMenuItem.Size = new System.Drawing.Size(152, 22); this.subItemToolStripMenuItem.Text = "Sub Item"; // // subItem2ToolStripMenuItem // this.subItem2ToolStripMenuItem.Name = "subItem2ToolStripMenuItem"; this.subItem2ToolStripMenuItem.Size = new System.Drawing.Size(152, 22); this.subItem2ToolStripMenuItem.Text = "Sub Item2"; // // showButton // this.showButton.Location = new System.Drawing.Point(12, 180); this.showButton.Name = "showButton"; this.showButton.Size = new System.Drawing.Size(75, 23); this.showButton.TabIndex = 2; this.showButton.Text = "Show"; this.showButton.UseVisualStyleBackColor = true; this.showButton.Click += new System.EventHandler(this.showButton_Click); // // hideButton // this.hideButton.Location = new System.Drawing.Point(12, 209); this.hideButton.Name = "hideButton"; this.hideButton.Size = new System.Drawing.Size(75, 23); this.hideButton.TabIndex = 3; this.hideButton.Text = "Hide"; this.hideButton.UseVisualStyleBackColor = true; this.hideButton.Click += new System.EventHandler(this.hideButton_Click); // // Form1 // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(292, 273); this.Controls.Add(this.statusStrip1); this.Controls.Add(this.hideButton); this.Controls.Add(this.toolStrip1); this.Controls.Add(this.showButton); this.Name = "Form1"; this.Text = "Form1"; this.statusStrip1.ResumeLayout(false); this.statusStrip1.PerformLayout(); this.contextMenuStrip1.ResumeLayout(false); this.ResumeLayout(false); this.PerformLayout(); } #endregion } static class Program { /// <summary> /// The main entry point for the application. /// </summary> [STAThread] static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form1()); } } }
System.MarshalByRefObject
System.ComponentModel.Component
System.Windows.Forms.ToolStripItem
System.Windows.Forms.ToolStripDropDownItem
System.Windows.Forms.ToolStripDropDownButton
System.Windows.Forms.ToolStripMenuItem
System.Windows.Forms.ToolStripSplitButton
Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98
.NET Framework y .NET Compact Framework no admiten todas las versiones de cada plataforma. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.