This documentation is archived and is not being maintained.

ToolStripDropDown Class

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)

<ComVisibleAttribute(True)> _
<ClassInterfaceAttribute(ClassInterfaceType.AutoDispatch)> _
Public Class ToolStripDropDown _
	Inherits ToolStrip
Dim instance As ToolStripDropDown

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})
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

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()
   End Sub

   <STAThread()>  _
   Shared Sub Main()
      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()
        End Sub 

        Public ReadOnly Property MyTreeView() As TreeView
                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
                End If 
            End If 
        End Sub 

        Protected Overrides Sub Dispose(ByVal disposing As Boolean)
            If disposing Then 
                If Not (dropDown Is Nothing) Then
                    dropDown = Nothing 
                End If 
            End If 
        End Sub 
    End Class 
End Class


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