MenuItemCollection クラス

定義

Menu コントロールに含まれるメニュー項目のコレクションを表します。Represents a collection of menu items in a Menu control. このクラスは継承できません。This class cannot be inherited.

public ref class MenuItemCollection sealed : System::Collections::ICollection, System::Web::UI::IStateManager
public sealed class MenuItemCollection : System.Collections.ICollection, System.Web.UI.IStateManager
type MenuItemCollection = class
    interface ICollection
    interface IEnumerable
    interface IStateManager
Public NotInheritable Class MenuItemCollection
Implements ICollection, IStateManager
継承
MenuItemCollection
実装

次のコード例では、宣言構文を使用して Items コレクションと ChildItems コレクションを設定する方法を示します。The following code example demonstrates how to populate the Items and ChildItems collections using declarative syntax.


<%@ Page Language="C#" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >

  <!-- For the hover styles of the Menu control to  -->
  <!-- work correctly, you must include this head   -->
  <!-- element.                                     -->
  <head runat="server">
    <title>Menu Declarative Example</title>
</head>

  <body>
    <form id="form1" runat="server">
    
      <h3>Menu Declarative Example</h3>
    
      <!-- Use declarative syntax to create the   -->
      <!-- menu structure. Submenu items are      -->
      <!-- created by nesting them in parent menu -->
      <!-- items.                                 -->
      <asp:menu id="NavigationMenu"
        disappearafter="2000"
        staticdisplaylevels="2"
        staticsubmenuindent="10" 
        orientation="Vertical"
        font-names="Arial" 
        target="_blank"  
        runat="server">
        
        <staticmenuitemstyle backcolor="LightSteelBlue"
          forecolor="Black"/>
        <statichoverstyle backcolor="LightSkyBlue"/>
        <dynamicmenuitemstyle backcolor="Black"
          forecolor="Silver"/>
        <dynamichoverstyle backcolor="LightSkyBlue"
          forecolor="Black"/>
      
        <items>
          <asp:menuitem navigateurl="Home.aspx" 
            text="Home"
            tooltip="Home">
            <asp:menuitem navigateurl="Music.aspx"
              text="Music"
              tooltip="Music">
              <asp:menuitem navigateurl="Classical.aspx" 
                text="Classical"
                tooltip="Classical"/>
              <asp:menuitem navigateurl="Rock.aspx"
                text="Rock"
                tooltip="Rock"/>
              <asp:menuitem navigateurl="Jazz.aspx"
                text="Jazz"
                tooltip="Jazz"/>
            </asp:menuitem>
            <asp:menuitem navigateurl="Movies.aspx"
              text="Movies"
              tooltip="Movies">
              <asp:menuitem navigateurl="Action.aspx"
                text="Action"
                tooltip="Action"/>
              <asp:menuitem navigateurl="Drama.aspx"
                text="Drama"
                tooltip="Drama"/>
              <asp:menuitem navigateurl="Musical.aspx"
                text="Musical"
                tooltip="Musical"/>
            </asp:menuitem>
          </asp:menuitem>
        </items>
      
      </asp:menu>

    </form>
  </body>
</html>


<%@ Page Language="VB" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >

  <!-- For the hover styles of the Menu control to  -->
  <!-- work correctly, you must include this head   -->
  <!-- element.                                     -->
  <head runat="server">
    <title>Menu Declarative Example</title>
</head>

  <body>
    <form id="form1" runat="server">
    
      <h3>Menu Declarative Example</h3>
    
      <!-- Use declarative syntax to create the   -->
      <!-- menu structure. Submenu items are      -->
      <!-- created by nesting them in parent menu -->
      <!-- items.                                 -->
      <asp:menu id="NavigationMenu"
        disappearafter="2000"
        staticdisplaylevels="2"
        staticsubmenuindent="10" 
        orientation="Vertical"
        font-names="Arial" 
        target="_blank"  
        runat="server">
        
        <staticmenuitemstyle backcolor="LightSteelBlue"
          forecolor="Black"/>
        <statichoverstyle backcolor="LightSkyBlue"/>
        <dynamicmenuitemstyle backcolor="Black"
          forecolor="Silver"/>
        <dynamichoverstyle backcolor="LightSkyBlue"
          forecolor="Black"/>
      
        <items>
          <asp:menuitem navigateurl="Home.aspx" 
            text="Home"
            tooltip="Home">
            <asp:menuitem navigateurl="Music.aspx"
              text="Music"
              tooltip="Music">
              <asp:menuitem navigateurl="Classical.aspx" 
                text="Classical"
                tooltip="Classical"/>
              <asp:menuitem navigateurl="Rock.aspx"
                text="Rock"
                tooltip="Rock"/>
              <asp:menuitem navigateurl="Jazz.aspx"
                text="Jazz"
                tooltip="Jazz"/>
            </asp:menuitem>
            <asp:menuitem navigateurl="Movies.aspx"
              text="Movies"
              tooltip="Movies">
              <asp:menuitem navigateurl="Action.aspx"
                text="Action"
                tooltip="Action"/>
              <asp:menuitem navigateurl="Drama.aspx"
                text="Drama"
                tooltip="Drama"/>
              <asp:menuitem navigateurl="Musical.aspx"
                text="Musical"
                tooltip="Musical"/>
            </asp:menuitem>
          </asp:menuitem>
        </items>
      
      </asp:menu>

    </form>
  </body>
</html>

次のコード例は、ルートメニュー項目の ChildItems コレクションに MenuItem オブジェクトをプログラムで追加する方法を示しています。The following code example demonstrates how to programmatically add a MenuItem object to the ChildItems collection of a root menu item.


<%@ Page Language="C#" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
    
  void Page_Load(Object sender, EventArgs e)
  {
    if (!IsPostBack)
    {
      // Retrieve the root menu item from the Items
      // collection of the Menu control using the indexer.
      MenuItem homeMenuItem = NavigationMenu.Items[0];

      // Create the submenu item.
      MenuItem newSubMenuItem = new MenuItem("New Category");

      // Add the submenu item to the ChildItems
      // collection of the root menu item.
      homeMenuItem.ChildItems.Add(newSubMenuItem);
    }
  }

</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
  <head runat="server">
    <title>MenuItemCollection Add Example</title>
</head>
<body>
    <form id="form1" runat="server">
    
      <h3>MenuItemCollection Add Example</h3>
    
      <asp:menu id="NavigationMenu"
        orientation="Vertical"
        target="_blank" 
        runat="server">
        
        <items>
          <asp:menuitem text="Home"
            tooltip="Home">
            <asp:menuitem text="Music"
              tooltip="Music">
              <asp:menuitem text="Classical"
                tooltip="Classical"/>
              <asp:menuitem text="Rock"
                tooltip="Rock"/>
              <asp:menuitem text="Jazz"
                tooltip="Jazz"/>
            </asp:menuitem>
            <asp:menuitem text="Movies"
              tooltip="Movies">
              <asp:menuitem text="Action"
                tooltip="Action"/>
              <asp:menuitem text="Drama"
                tooltip="Drama"/>
              <asp:menuitem text="Musical"
                tooltip="Musical"/>
            </asp:menuitem>
          </asp:menuitem>
        </items>

      </asp:menu>

    </form>
  </body>
</html>


<%@ Page Language="VB" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
    
  Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)

    If Not IsPostBack Then

      ' Retrieve the root menu item from the Items
      ' collection of the Menu control using the indexer.
      Dim homeMenuItem As MenuItem = NavigationMenu.Items(0)

      ' Create the submenu item.
      Dim newSubMenuItem = New MenuItem("New Category")

      ' Add the submenu item to the ChildItems
      ' collection of the root menu item.
      homeMenuItem.ChildItems.Add(newSubMenuItem)
    
    End If
      
  End Sub

</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
  <head runat="server">
    <title>MenuItemCollection Add Example</title>
</head>
<body>
    <form id="form1" runat="server">
    
      <h3>MenuItemCollection Add Example</h3>
    
      <asp:menu id="NavigationMenu"
        orientation="Vertical"
        target="_blank" 
        runat="server">
        
        <items>
          <asp:menuitem text="Home"
            tooltip="Home">
            <asp:menuitem text="Music"
              tooltip="Music">
              <asp:menuitem text="Classical"
                tooltip="Classical"/>
              <asp:menuitem text="Rock"
                tooltip="Rock"/>
              <asp:menuitem text="Jazz"
                tooltip="Jazz"/>
            </asp:menuitem>
            <asp:menuitem text="Movies"
              tooltip="Movies">
              <asp:menuitem text="Action"
                tooltip="Action"/>
              <asp:menuitem text="Drama"
                tooltip="Drama"/>
              <asp:menuitem text="Musical"
                tooltip="Musical"/>
            </asp:menuitem>
          </asp:menuitem>
        </items>

      </asp:menu>

    </form>
  </body>
</html>

注釈

MenuItemCollection クラスは、Menu コントロール内の MenuItem オブジェクトのコレクションを格納および管理するために使用されます。The MenuItemCollection class is used to store and manage a collection of MenuItem objects in the Menu control. Menu コントロールは、MenuItemCollection クラスを使用して、ルートメニュー項目を Items プロパティに格納します。The Menu control uses the MenuItemCollection class to store its root menu items in the Items property. このコレクションは、メニュー項目のサブメニュー項目 (存在する場合) を格納するために、MenuItem オブジェクトの ChildItems プロパティにも使用されます。This collection is also used for the ChildItems property of a MenuItem object to store a menu item's submenu items (if any).

MenuItemCollection クラスは、コレクション内の項目にアクセスするためのいくつかの方法をサポートしています。The MenuItemCollection class supports several ways to access the items in the collection:

  • Item[Int32] インデクサーを使用して、特定の0から始まるインデックスで MenuItem オブジェクトを直接取得します。Use the Item[Int32] indexer to directly retrieve a MenuItem object at a specific zero-based index.

  • GetEnumerator メソッドを使用して、コレクションの反復処理に使用できる列挙子を作成します。Use the GetEnumerator method to create an enumerator that can be used to iterate through the collection.

  • CopyTo メソッドを使用して、コレクションの内容を配列にコピーします。Use the CopyTo method to copy the contents of the collection into an array.

MenuItem オブジェクトを追加および削除することによって、MenuItemCollection オブジェクトをプログラムで管理できます。You can programmatically manage a MenuItemCollection object by adding and removing MenuItem objects. メニュー項目をコレクションに追加するには、Add または AddAt メソッドを使用します。To add menu items to the collection, use the Add or the AddAt method. コレクションからノードを削除するには、RemoveRemoveAt、または Clear メソッドを使用します。To remove nodes from the collection, use the Remove, the RemoveAt, or the Clear method.

注意

Menu コントロールがデータソースにバインドされている場合、バインドが発生するたびに ItemsChildItems のコレクションが自動的に設定されます。When the Menu control is bound to a data source, the Items and ChildItems collections are automatically populated each time binding occurs. バインド間のコレクションに対する変更はすべて失われます。Any changes to the collections between bindings will be lost. これらの変更を保持するには、データソースを更新するか、バインドするたびに手動でコレクションを再構築します。To retain these changes, either update the data source or manually rebuild the collection each time you bind.

MenuItemCollection クラスには、コレクション自体に関する情報を取得できるようにするプロパティとメソッドが含まれています。The MenuItemCollection class contains properties and methods that allow you to retrieve information about the collection itself. コレクション内の項目の数を確認するには、Count プロパティを使用します。To find out how many items are in the collection, use the Count property. コレクションに特定の MenuItem オブジェクトが含まれているかどうかを確認するには、Contains メソッドを使用します。If you want to determine whether the collection contains a certain MenuItem object, use the Contains method. コレクション内の MenuItem オブジェクトのインデックスを取得するには、IndexOf メソッドを使用します。To get the index of a MenuItem object in the collection, use the IndexOf method.

コンストラクター

MenuItemCollection()

既定値を使用して、MenuItemCollection クラスの新しいインスタンスを初期化します。Initializes a new instance of the MenuItemCollection class using the default values.

MenuItemCollection(MenuItem)

親メニュー項目 (または所有者) を指定して、MenuItemCollection クラスの新しいインスタンスを初期化します。Initializes a new instance of the MenuItemCollection class using the specified parent menu item (or owner).

プロパティ

Count

現在の MenuItemCollection オブジェクト内のメニュー項目の数を取得します。Gets the number of menu items contained in the current MenuItemCollection object.

IsSynchronized

MenuItemCollection オブジェクトへのアクセスが同期されている (スレッド セーフである) かどうかを示す値を取得します。Gets a value indicating whether access to the MenuItemCollection object is synchronized (thread safe).

Item[Int32]

現在の MenuItem オブジェクト内の指定したインデックス位置にある MenuItemCollection オブジェクトを取得します。Gets the MenuItem object at the specified index in the current MenuItemCollection object.

SyncRoot

MenuItemCollection オブジェクトへのアクセスを同期するために使用できるオブジェクトを取得します。Gets an object that can be used to synchronize access to the MenuItemCollection object.

メソッド

Add(MenuItem)

指定した MenuItem オブジェクトを現在の MenuItemCollection オブジェクトの末尾に追加します。Appends the specified MenuItem object to the end of the current MenuItemCollection object.

AddAt(Int32, MenuItem)

指定した MenuItem オブジェクトを、現在の MenuItemCollection オブジェクトの指定したインデックス位置に挿入します。Inserts the specified MenuItem object in the current MenuItemCollection object at the specified index location.

Clear()

現在の MenuItemCollection オブジェクトからすべての項目を削除します。Removes all items from the current MenuItemCollection object.

Contains(MenuItem)

指定した MenuItem オブジェクトがコレクション内にあるかどうかを確認します。Determines whether the specified MenuItem object is in the collection.

CopyTo(Array, Int32)

MenuItemCollection オブジェクトのすべての項目を、互換性のある 1 次元の Array にコピーします。コピー先の配列の指定したインデックスからコピーが開始されます。Copies all the items from the MenuItemCollection object to a compatible one-dimensional Array, starting at the specified index in the target array.

CopyTo(MenuItem[], Int32)

MenuItemCollection のすべての項目を互換性のある 1 次元の MenuItem オブジェクト配列にコピーします。コピー先の配列の指定したインデックスからコピーが開始されます。Copies all the items from the MenuItemCollection object to a compatible one-dimensional array of MenuItem objects, starting at the specified index in the target array.

Equals(Object)

指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判定します。Determines whether the specified object is equal to the current object.

(継承元 Object)
GetEnumerator()

現在の MenuItemCollection オブジェクト内の項目を反復処理するために使用できる列挙子を返します。Returns an enumerator that can be used to iterate through the items in the current MenuItemCollection object.

GetHashCode()

既定のハッシュ関数として機能します。Serves as the default hash function.

(継承元 Object)
GetType()

現在のインスタンスの Type を取得します。Gets the Type of the current instance.

(継承元 Object)
IndexOf(MenuItem)

コレクション内の指定した MenuItem オブジェクトのインデックスを確認します。Determines the index of the specified MenuItem object in the collection.

MemberwiseClone()

現在の Object の簡易コピーを作成します。Creates a shallow copy of the current Object.

(継承元 Object)
Remove(MenuItem)

指定した MenuItem オブジェクトを MenuItemCollection オブジェクトから削除します。Removes the specified MenuItem object from the MenuItemCollection object.

RemoveAt(Int32)

指定したインデックス位置にある MenuItem オブジェクトを現在の MenuItemCollection オブジェクトから削除します。Removes the MenuItem object at the specified index location from the current MenuItemCollection object.

ToString()

現在のオブジェクトを表す string を返します。Returns a string that represents the current object.

(継承元 Object)

明示的なインターフェイスの実装

IStateManager.IsTrackingViewState

MenuItemCollection オブジェクトがビューステートへの変更を保存しているかどうかを示す値を取得します。Gets a value that indicates whether the MenuItemCollection object is saving changes to its view state.

IStateManager.LoadViewState(Object)

MenuItemCollection オブジェクトが前回保存したビューステートを読み込みます。Loads the MenuItemCollection object's previously saved view state.

IStateManager.SaveViewState()

ビューステートへの変更を Object に保存します。Saves the changes to view state to an Object.

IStateManager.TrackViewState()

ビュー ステートへの変更を追跡するように MenuItemCollection オブジェクトに指示します。Instructs the MenuItemCollection object to track changes to its view state.

拡張メソッド

Cast<TResult>(IEnumerable)

IEnumerable の要素を、指定した型にキャストします。Casts the elements of an IEnumerable to the specified type.

OfType<TResult>(IEnumerable)

指定された型に基づいて IEnumerable の要素をフィルター処理します。Filters the elements of an IEnumerable based on a specified type.

AsParallel(IEnumerable)

クエリの並列化を有効にします。Enables parallelization of a query.

AsQueryable(IEnumerable)

IEnumerableIQueryable に変換します。Converts an IEnumerable to an IQueryable.

適用対象

こちらもご覧ください