Share via


MenuItemCollection.IndexOf method

Retrieves the first index of a specific item in the collection.

Namespace:  Microsoft.SharePoint.WebPartPages
Assembly:  Microsoft.SharePoint (in Microsoft.SharePoint.dll)

Syntax

'Declaration
Public Function IndexOf ( _
    menuItem As MenuItem _
) As Integer
'Usage
Dim instance As MenuItemCollection
Dim menuItem As MenuItem
Dim returnValue As Integer

returnValue = instance.IndexOf(menuItem)
public int IndexOf(
    MenuItem menuItem
)

Parameters

Return value

Type: System.Int32
Int32 value that represents the first index location of the specified MenuItem object.

Examples

The following code example creates a custom menu that has one parent menu item and two submenu items. It uses the IndexOf method to determine where a particular menu item appears within the custom menu.

public override void CreateWebPartMenu()
{
    // Declare variables for menu items.
    MenuItem ParentItem;
    MenuItem Item1;
    MenuItem Item2;

    // Create three menu items:
    // One parent item, and two submenu items.

    // Create the parent item.
    ParentItem = new MenuItem("ParentItem", "", "ParentItemID");

    // Create a submenu item with a server event on click.
    Item1 = new MenuItem("Item1", "Item1ID", new EventHandler(EventHandlerForItem1));

    // Create a submenu item with a client event on click. 
    Item2 = new MenuItem("Item2", "javascript:alert('Item2 was clicked');", "Item2ID");

    // Add the submenu items to the parent item.
    ParentItem.MenuItems.Add(Item1);
    ParentItem.MenuItems.Add(Item2);

    // Add the parent item after the "Modify Shared/Personal Web Part"
    // command in the default menu. 

    // Retrieve the index of the "Modify Shared/Personal Web Part" 
    // command.
    int EditIndex = this.WebPartMenu.MenuItems.IndexOf(this.WebPartMenu.MenuItems.ItemFromID("MSOMenu_Edit"));

    // Insert the parent item after the "Modify Shared/Personal Web 
    // Part" command.
    this.WebPartMenu.MenuItems.Insert(EditIndex + 1, ParentItem); 

    // Add a separator above the parent item.
    ParentItem.BeginSection = true;

    // Check the "ParentItemIsVisible" custom boolean property to 
    // decide whether to display the parent menu.
    if (this.ParentItemIsVisible == true)
    {
        ParentItem.Visible = true;
    }

    else
    {
        ParentItem.Visible = false;
    }

    // Check the "EnableItem1" custom boolean property to decide which 
    // menu item to enable. 
    // within the parent item.
    if (this.EnableItem1 == true)
    {
        Item1.Enabled=true;
        Item2.Enabled=false;
    }
    
    else
    {
        Item1.Enabled=false;
        Item2.Enabled=true;
    }
}
Public Overrides Sub CreateWebPartMenu()
        ' Declare variables for menu items.
        Dim ParentItem As MenuItem
        Dim Item1 As MenuItem
        Dim Item2 As MenuItem

        ' Create three menu items:
        ' One parent item, and two submenu items.

        ' Create the parent item.
        ParentItem = New MenuItem("ParentItem", "", "ParentItemID")

        ' Create a submenu item with a server event on click.
        Item1 = New MenuItem("Item1", "Item1ID", New EventHandler(AddressOf EventHandlerForItem1))

        ' Create a submenu item with a client event on click. 
        Item2 = New MenuItem("Item2", "javascript:alert('Item2 was clicked');", "Item2ID")

        ' Add the submenu items to the parent item.
        ParentItem.MenuItems.Add(Item1)
        ParentItem.MenuItems.Add(Item2)

        ' Add the parent item after the "Modify Shared/Personal Web Part"
        ' command in the default menu. 

        ' Retrieve the index of the "Modify Shared/Personal Web Part" 
        ' command.
        Dim EditIndex As Integer = Me.WebPartMenu.MenuItems.IndexOf(Me.WebPartMenu.MenuItems.ItemFromID("MSOMenu_Edit"))

        ' Insert the parent item after the "Modify Shared/Personal Web 
        ' Part" command.
        Me.WebPartMenu.MenuItems.Insert(EditIndex + 1, ParentItem)

        ' Add a separator above the parent item.
        ParentItem.BeginSection = True

        ' Check the "ParentItemIsVisible" custom boolean property to 
        ' decide whether to display the parent menu.
        If Me.ParentItemIsVisible = True Then
                ParentItem.Visible = True

        Else
                ParentItem.Visible = False
        End If

        ' Check the "EnableItem1" custom boolean property to decide which 
        ' menu item to enable. 
        ' within the parent item.
        If Me.EnableItem1 = True Then
                Item1.Enabled=True
                Item2.Enabled=False

        Else
                Item1.Enabled=False
                Item2.Enabled=True
        End If
End Sub

See also

Reference

MenuItemCollection class

MenuItemCollection members

Microsoft.SharePoint.WebPartPages namespace