Udostępnij za pośrednictwem


How to: Define Z-Ordering of Docked ToolStrip Controls

To position a ToolStrip control correctly with docking, you must position the control correctly in the form's z-order.

Example

The following code example demonstrates how to arrange a ToolStrip control and a docked MenuStrip control by specifying the z-order.

Class Form2
   Inherits Form

   Public Sub New()
      ' Create a new ToolStrip control. 
      Dim ts As New ToolStrip()

      ' Populate the ToolStrip control.
      ts.Items.Add("Apples")
      ts.Items.Add("Oranges")
      ts.Items.Add("Pears")
      ts.Items.Add("Change Colors", Nothing, New EventHandler(AddressOf ChangeColors_Click))

      ' Create a new MenuStrip. 
      Dim ms As New MenuStrip()

      ' Dock the MenuStrip control to the top of the form.
      ms.Dock = DockStyle.Top

      ' Add the top-level menu items.
      ms.Items.Add("File")
      ms.Items.Add("Edit")
      ms.Items.Add("View")
      ms.Items.Add("Window")

      ' Add the ToolStrip to Controls collection. 
      Me.Controls.Add(ts)

      ' Add the MenuStrip control last. 
      ' This is important for correct placement in the z-order. 
      Me.Controls.Add(ms)
    End Sub 

   ' This event handler is invoked when the "Change colors" 
   ' ToolStripItem is clicked. It assigns the Renderer 
   ' property for the ToolStrip control. 
    Sub ChangeColors_Click(ByVal sender As Object, ByVal e As EventArgs)
        ToolStripManager.Renderer = New ToolStripProfessionalRenderer(New CustomProfessionalColors())
    End Sub 
End Class
public Form2()
{
    // Create a new ToolStrip control.
    ToolStrip ts = new ToolStrip();

    // Populate the ToolStrip control.
    ts.Items.Add("Apples");
    ts.Items.Add("Oranges");
    ts.Items.Add("Pears");
    ts.Items.Add(
        "Change Colors", 
        null, 
        new EventHandler(ChangeColors_Click));

    // Create a new MenuStrip.
    MenuStrip ms = new MenuStrip();

    // Dock the MenuStrip control to the top of the form.
    ms.Dock = DockStyle.Top;

    // Add the top-level menu items.
    ms.Items.Add("File");
    ms.Items.Add("Edit");
    ms.Items.Add("View");
    ms.Items.Add("Window");

    // Add the ToolStrip to Controls collection. 
    this.Controls.Add(ts);

    // Add the MenuStrip control last. 
    // This is important for correct placement in the z-order. 
    this.Controls.Add(ms);
}

The z-order is determined by the order in which the ToolStrip and MenuStrip

controls are added to the form's Controls collection.

' Add the ToolStrip to Controls collection. 
Me.Controls.Add(ts)

' Add the MenuStrip control last. 
' This is important for correct placement in the z-order. 
Me.Controls.Add(ms)
// Add the ToolStrip to Controls collection. 
this.Controls.Add(ts);

// Add the MenuStrip control last. 
// This is important for correct placement in the z-order. 
this.Controls.Add(ms);

Reverse the order of these calls to the Add method and view the effect on the layout.

Compiling the Code

This example requires:

  • References to the System.Design, System.Drawing, and System.Windows.Forms assemblies.

For information about building this example from the command line for Visual Basic or Visual C#, see Building from the Command Line (Visual Basic) or Command-line Building With csc.exe. You can also build this example in Visual Studio by pasting the code into a new project. How to: Compile and Run a Complete Windows Forms Code Example Using Visual Studio
How to: Compile and Run a Complete Windows Forms Code Example Using Visual Studio
How to: Compile and Run a Complete Windows Forms Code Example Using Visual Studio
How to: Compile and Run a Complete Windows Forms Code Example Using Visual Studio

See Also

Reference

MenuStrip

ToolStrip

Add

Controls

Dock

Other Resources

ToolStrip Control (Windows Forms)