Represents a control that allows the user to select a single item from a list that is displayed when the user clicks a ToolStripDropDownButton. Although ToolStripDropDownMenu and ToolStripDropDown replace and add functionality to the Menu control of previous versions, Menu is retained for both backward compatibility and future use if you choose.
Namespace:
System.Windows.Forms
Assembly:
System.Windows.Forms (in System.Windows.Forms.dll)
Visual Basic (Declaration)
<ComVisibleAttribute(True)> _
<ClassInterfaceAttribute(ClassInterfaceType.AutoDispatch)> _
Public Class ToolStripDropDown _
Inherits ToolStrip
Dim instance As ToolStripDropDown
[ComVisibleAttribute(true)]
[ClassInterfaceAttribute(ClassInterfaceType.AutoDispatch)]
public class ToolStripDropDown : ToolStrip
[ComVisibleAttribute(true)]
[ClassInterfaceAttribute(ClassInterfaceType::AutoDispatch)]
public ref class ToolStripDropDown : public ToolStrip
public class ToolStripDropDown extends ToolStrip
Use the ToolStripDropDown to display drop-down lists of options, such as a color picker.
The following code example uses the ToolStripDropDown and ToolStripDropDownButton classes to make a three-button color picker that changes the foreground color of the form.
' Declare the drop-down button and the items it will contain.
Friend WithEvents dropDownButton1 As ToolStripDropDownButton
Friend WithEvents dropDown As ToolStripDropDown
Friend WithEvents buttonRed As ToolStripButton
Friend WithEvents buttonBlue As ToolStripButton
Friend WithEvents buttonYellow As ToolStripButton
Private Sub InitializeDropDownButton()
dropDownButton1 = New ToolStripDropDownButton()
dropDown = New ToolStripDropDown()
dropDownButton1.Text = "A"
' Set the drop-down on the ToolStripDropDownButton.
dropDownButton1.DropDown = dropDown
' Set the drop-down direction.
dropDownButton1.DropDownDirection = ToolStripDropDownDirection.Left
' Do not show a drop-down arrow.
dropDownButton1.ShowDropDownArrow = False
' Declare three buttons, set their foreground color and text,
' and add the buttons to the drop-down.
buttonRed = New ToolStripButton()
buttonRed.ForeColor = Color.Red
buttonRed.Text = "A"
buttonBlue = New ToolStripButton()
buttonBlue.ForeColor = Color.Blue
buttonBlue.Text = "A"
buttonYellow = New ToolStripButton()
buttonYellow.ForeColor = Color.Yellow
buttonYellow.Text = "A"
dropDown.Items.AddRange(New ToolStripItem() {buttonRed, buttonBlue, buttonYellow})
toolStrip1.Items.Add(dropDownButton1)
End Sub
' Handle the buttons' click event by setting the foreground color of the
' form to the foreground color of the button that is clicked.
Public Sub colorButtonsClick(ByVal sender As [Object], ByVal e As EventArgs) _
Handles buttonRed.Click, buttonBlue.Click, buttonYellow.Click
Dim senderButton As ToolStripButton = CType(sender, ToolStripButton)
Me.ForeColor = senderButton.ForeColor
End Sub
// Declare the drop-down button and the items it will contain.
internal ToolStripDropDownButton dropDownButton1;
internal ToolStripDropDown dropDown;
internal ToolStripButton buttonRed;
internal ToolStripButton buttonBlue;
internal ToolStripButton buttonYellow;
private void InitializeDropDownButton()
{
dropDownButton1 = new ToolStripDropDownButton();
dropDown = new ToolStripDropDown();
dropDownButton1.Text = "A";
// Set the drop-down on the ToolStripDropDownButton.
dropDownButton1.DropDown = dropDown;
// Set the drop-down direction.
dropDownButton1.DropDownDirection = ToolStripDropDownDirection.Left;
// Do not show a drop-down arrow.
dropDownButton1.ShowDropDownArrow = false;
// Declare three buttons, set their foreground color and text,
// and add the buttons to the drop-down.
buttonRed = new ToolStripButton();
buttonRed.ForeColor = Color.Red;
buttonRed.Text = "A";
buttonBlue = new ToolStripButton();
buttonBlue.ForeColor = Color.Blue;
buttonBlue.Text = "A";
buttonYellow = new ToolStripButton();
buttonYellow.ForeColor = Color.Yellow;
buttonYellow.Text = "A";
buttonBlue.Click += new EventHandler(colorButtonsClick);
buttonRed.Click += new EventHandler(colorButtonsClick);
buttonYellow.Click += new EventHandler(colorButtonsClick);
dropDown.Items.AddRange(new ToolStripItem[]
{ buttonRed, buttonBlue, buttonYellow });
toolStrip1.Items.Add(dropDownButton1);
}
// Handle the buttons' click event by setting the foreground color of the
// form to the foreground color of the button that is clicked.
private void colorButtonsClick(object sender, EventArgs e)
{
ToolStripButton senderButton = (ToolStripButton)sender;
this.ForeColor = senderButton.ForeColor;
}
// Declare the drop-down button and the items it will contain.
ToolStripDropDownButton^ dropDownButton1;
ToolStripDropDown^ dropDown;
ToolStripButton^ buttonRed;
ToolStripButton^ buttonBlue;
ToolStripButton^ buttonYellow;
void InitializeDropDownButton()
{
dropDownButton1 = gcnew ToolStripDropDownButton;
dropDown = gcnew ToolStripDropDown;
dropDownButton1->Text = "A";
// Set the drop-down on the DropDownButton.
dropDownButton1->DropDown = dropDown;
// Declare three buttons, set their forecolor and text,
// and add the buttons to the drop-down.
buttonRed = gcnew ToolStripButton;
buttonRed->ForeColor = Color::Red;
buttonRed->Text = "A";
buttonBlue = gcnew ToolStripButton;
buttonBlue->ForeColor = Color::Blue;
buttonBlue->Text = "A";
buttonYellow = gcnew ToolStripButton;
buttonYellow->ForeColor = Color::Yellow;
buttonYellow->Text = "A";
buttonBlue->Click += gcnew EventHandler(this,
&Form1::colorButtonsClick);
buttonRed->Click += gcnew EventHandler(this,
&Form1::colorButtonsClick);
buttonYellow->Click += gcnew EventHandler(this,
&Form1::colorButtonsClick);
array<ToolStripItem^>^ ToolStrips =
{buttonRed,buttonBlue,buttonYellow};
dropDown->Items->AddRange(ToolStrips);
toolStrip1->Items->Add(dropDownButton1);
}
// Handle the buttons' click event by setting the forecolor
// of the form to the forecolor of the button that is clicked.
void colorButtonsClick(Object^ sender, EventArgs^ e)
{
ToolStripButton^ senderButton = (ToolStripButton^) sender;
this->ForeColor = senderButton->ForeColor;
}
// internal:
The following code example uses ToolStripControlHost to show a ToolStripDropDown as a TreeView.
Imports System
Imports System.Collections.Generic
Imports System.ComponentModel
Imports System.Data
Imports System.Drawing
Imports System.Text
Imports System.Windows.Forms
Imports System.Security.Permissions
Public Class Form1
Inherits Form
Public Sub New()
Dim treeCombo As New MyTreeViewCombo()
treeCombo.MyTreeView.Nodes.Add("one")
treeCombo.MyTreeView.Nodes.Add("two")
treeCombo.MyTreeView.Nodes.Add("three")
Me.Controls.Add(treeCombo)
End Sub
<STAThread()> _
Shared Sub Main()
Application.EnableVisualStyles()
Application.SetCompatibleTextRenderingDefault(False)
Application.Run(New Form1())
End Sub
<SecurityPermissionAttribute( _
SecurityAction.LinkDemand, Flags:=SecurityPermissionFlag.UnmanagedCode)> _
Public Class MyTreeViewCombo
Inherits ComboBox
Private treeViewHost As ToolStripControlHost
Private Shadows dropDown As ToolStripDropDown
Public Sub New()
Dim treeView As New TreeView()
treeView.BorderStyle = BorderStyle.None
treeViewHost = New ToolStripControlHost(treeView)
dropDown = New ToolStripDropDown()
dropDown.Items.Add(treeViewHost)
End Sub
Public ReadOnly Property MyTreeView() As TreeView
Get
Return treeViewHost.Control '
End Get
End Property
Private Sub ShowDropDown()
If Not (dropDown Is Nothing) Then
treeViewHost.Width = DropDownWidth
treeViewHost.Height = DropDownHeight
dropDown.Show(Me, 0, Me.Height)
End If
End Sub
Private Const WM_USER As Integer = &H400
Private Const WM_REFLECT As Integer = WM_USER + &H1C00
Private Const WM_COMMAND As Integer = &H111
Private Const CBN_DROPDOWN As Integer = 7
Public Shared Function HIWORD(ByVal n As Integer) As Integer
Return (n >> 16) And &HFFFF
End Function
Protected Overrides Sub WndProc(ByRef m As Message)
If m.Msg = WM_REFLECT + WM_COMMAND Then
If HIWORD(CType(m.WParam, Integer)) = CBN_DROPDOWN Then
ShowDropDown()
Return
End If
End If
MyBase.WndProc(m)
End Sub
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
If disposing Then
If Not (dropDown Is Nothing) Then
dropDown.Dispose()
dropDown = Nothing
End If
End If
MyBase.Dispose(disposing)
End Sub
End Class
End Class
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Security.Permissions;
public class Form1 : Form
{
public Form1()
{
MyTreeViewCombo treeCombo = new MyTreeViewCombo();
treeCombo.TreeView.Nodes.Add("one");
treeCombo.TreeView.Nodes.Add("two");
treeCombo.TreeView.Nodes.Add("three");
this.Controls.Add(treeCombo);
}
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
[SecurityPermissionAttribute(
SecurityAction.LinkDemand, Flags = SecurityPermissionFlag.UnmanagedCode)]
public class MyTreeViewCombo : ComboBox
{
ToolStripControlHost treeViewHost;
ToolStripDropDown dropDown;
public MyTreeViewCombo()
{
TreeView treeView = new TreeView();
treeView.BorderStyle = BorderStyle.None;
treeViewHost = new ToolStripControlHost(treeView);
dropDown = new ToolStripDropDown();
dropDown.Items.Add(treeViewHost);
}
public TreeView TreeView
{
get { return treeViewHost.Control as TreeView; }
}
private void ShowDropDown()
{
if (dropDown != null)
{
treeViewHost.Width = DropDownWidth;
treeViewHost.Height = DropDownHeight;
dropDown.Show(this, 0, this.Height);
}
}
private const int WM_USER = 0x0400,
WM_REFLECT = WM_USER + 0x1C00,
WM_COMMAND = 0x0111,
CBN_DROPDOWN = 7;
public static int HIWORD(int n)
{
return (n >> 16) & 0xffff;
}
protected override void WndProc(ref Message m)
{
if (m.Msg == (WM_REFLECT + WM_COMMAND))
{
if (HIWORD((int)m.WParam) == CBN_DROPDOWN)
{
ShowDropDown();
return;
}
}
base.WndProc(ref m);
}
protected override void Dispose(bool disposing)
{
if (disposing)
{
if (dropDown != null)
{
dropDown.Dispose();
dropDown = null;
}
}
base.Dispose(disposing);
}
}
}
System..::.Object
System..::.MarshalByRefObject
System.ComponentModel..::.Component
System.Windows.Forms..::.Control
System.Windows.Forms..::.ScrollableControl
System.Windows.Forms..::.ToolStrip
System.Windows.Forms..::.ToolStripDropDown
System.Windows.Forms..::.ToolStripDropDownMenu
System.Windows.Forms..::.ToolStripOverflow
Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.
Windows 7, Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98
The .NET Framework and .NET Compact Framework do not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.
.NET Framework
Supported in: 3.5, 3.0, 2.0
Reference
Other Resources