ListBox.ObjectCollection Classe

Définition

Représente la collection d’éléments dans un ListBox.Represents the collection of items in a ListBox.

public: ref class ListBox::ObjectCollection : System::Collections::IList
[System.ComponentModel.ListBindable(false)]
public class ListBox.ObjectCollection : System.Collections.IList
type ListBox.ObjectCollection = class
    interface IList
    interface ICollection
    interface IEnumerable
Public Class ListBox.ObjectCollection
Implements IList
Héritage
ListBox.ObjectCollection
Dérivé
Attributs
Implémente

Exemples

L’exemple de code suivant illustre un dessin owner ListBox -drawn DrawMode en affectant OwnerDrawVariable à la propriété la DrawItem valeur MeasureItem et en gérant les événements et.The following code example demonstrates an owner-drawn ListBox by setting the DrawMode property to the OwnerDrawVariable value and handling the DrawItem and MeasureItem events. Il illustre également la BorderStyle définition des propriétés et ScrollAlwaysVisible et l' AddRange utilisation de la méthode.It also demonstrates setting the BorderStyle and ScrollAlwaysVisible properties and using the AddRange method.

Pour exécuter cet exemple, collez-le dans un formulaire vide qui System.Drawing importe l’espace System.Windows.Forms de noms et l’espace de noms.To run this example, paste it into an empty form that imports the System.Drawing namespace and the System.Windows.Forms namespace. Appelez InitializeOwnerDrawnListBox à partir de la méthode ou Load du constructeur du formulaire.Call InitializeOwnerDrawnListBox from the form's constructor or Load method.

internal:
   System::Windows::Forms::ListBox^ ListBox1;

private:
   void InitializeOwnerDrawnListBox()
   {
      this->ListBox1 = gcnew System::Windows::Forms::ListBox;
      
      // Set the location and size.
      ListBox1->Location = Point(20,20);
      ListBox1->Size = System::Drawing::Size( 240, 240 );
      
      // Populate the ListBox.ObjectCollection property 
      // with several strings, using the AddRange method.
      array<Object^>^temp0 = {"System.Windows.Forms","System.Drawing","System.Xml","System.Net","System.Runtime.Remoting","System.Web"};
      this->ListBox1->Items->AddRange( temp0 );
      
      // Turn off the scrollbar.
      ListBox1->ScrollAlwaysVisible = false;
      
      // Set the border style to a single, flat border.
      ListBox1->BorderStyle = BorderStyle::FixedSingle;
      
      // Set the DrawMode property to the OwnerDrawVariable value. 
      // This means the MeasureItem and DrawItem events must be 
      // handled.
      ListBox1->DrawMode = DrawMode::OwnerDrawVariable;
      ListBox1->MeasureItem += gcnew MeasureItemEventHandler( this, &Form1::ListBox1_MeasureItem );
      ListBox1->DrawItem += gcnew DrawItemEventHandler( this, &Form1::ListBox1_DrawItem );
      this->Controls->Add( this->ListBox1 );
   }

   // Handle the DrawItem event for an owner-drawn ListBox.
   void ListBox1_DrawItem( Object^ /*sender*/, DrawItemEventArgs^ e )
   {
      // If the item is the selected item, then draw the rectangle
      // filled in blue. The item is selected when a bitwise And  
      // of the State property and the DrawItemState.Selected 
      // property is true.
      if ( (e->State & DrawItemState::Selected) == DrawItemState::Selected )
      {
         e->Graphics->FillRectangle( Brushes::CornflowerBlue, e->Bounds );
      }
      else
      {
         
         // Otherwise, draw the rectangle filled in beige.
         e->Graphics->FillRectangle( Brushes::Beige, e->Bounds );
      }
      
      // Draw a rectangle in blue around each item.
      e->Graphics->DrawRectangle( Pens::Blue, e->Bounds );
      
      // Draw the text in the item.
      e->Graphics->DrawString( ListBox1->Items[ e->Index ]->ToString(), this->Font, Brushes::Black, (float)e->Bounds.X, (float)e->Bounds.Y );
      
      // Draw the focus rectangle around the selected item.
      e->DrawFocusRectangle();
   }


   // Handle the MeasureItem event for an owner-drawn ListBox.
   void ListBox1_MeasureItem( Object^ sender, MeasureItemEventArgs^ e )
   {
      
      // Cast the sender object back to ListBox type.
      ListBox^ theListBox = dynamic_cast<ListBox^>(sender);
      
      // Get the string contained in each item.
      String^ itemString = dynamic_cast<String^>(theListBox->Items[ e->Index ]);
      
      // Split the string at the " . "  character.
      array<Char>^temp1 = {'.'};
      array<String^>^resultStrings = itemString->Split( temp1 );
      
      // If the string contains more than one period, increase the 
      // height by ten pixels; otherwise, increase the height by 
      // five pixels.
      if ( resultStrings->Length > 2 )
      {
         e->ItemHeight += 10;
      }
      else
      {
         e->ItemHeight += 5;
      }
   }
internal System.Windows.Forms.ListBox ListBox1;

private void InitializeOwnerDrawnListBox()
{
    this.ListBox1 = new System.Windows.Forms.ListBox();

    // Set the location and size.
    ListBox1.Location = new Point(20, 20);
    ListBox1.Size = new Size(240, 240);

    // Populate the ListBox.ObjectCollection property 
    // with several strings, using the AddRange method.
    this.ListBox1.Items.AddRange(new object[]{"System.Windows.Forms", 
        "System.Drawing", "System.Xml", "System.Net", "System.Runtime.Remoting", 
        "System.Web"});

    // Turn off the scrollbar.
    ListBox1.ScrollAlwaysVisible = false;

    // Set the border style to a single, flat border.
    ListBox1.BorderStyle = BorderStyle.FixedSingle;

    // Set the DrawMode property to the OwnerDrawVariable value. 
    // This means the MeasureItem and DrawItem events must be 
    // handled.
    ListBox1.DrawMode = DrawMode.OwnerDrawVariable;
    ListBox1.MeasureItem += 
        new MeasureItemEventHandler(ListBox1_MeasureItem);
    ListBox1.DrawItem += new DrawItemEventHandler(ListBox1_DrawItem);
    this.Controls.Add(this.ListBox1);
    
}


// Handle the DrawItem event for an owner-drawn ListBox.
private void ListBox1_DrawItem(object sender, DrawItemEventArgs e)
{

    // If the item is the selected item, then draw the rectangle
    // filled in blue. The item is selected when a bitwise And  
    // of the State property and the DrawItemState.Selected 
    // property is true.
    if ((e.State & DrawItemState.Selected) == DrawItemState.Selected)
    {
        e.Graphics.FillRectangle(Brushes.CornflowerBlue, e.Bounds);
    }
    else
    {
        // Otherwise, draw the rectangle filled in beige.
        e.Graphics.FillRectangle(Brushes.Beige, e.Bounds);
    }

    // Draw a rectangle in blue around each item.
    e.Graphics.DrawRectangle(Pens.Blue, e.Bounds);

    // Draw the text in the item.
    e.Graphics.DrawString(ListBox1.Items[e.Index].ToString(),
        this.Font, Brushes.Black, e.Bounds.X, e.Bounds.Y);

    // Draw the focus rectangle around the selected item.
    e.DrawFocusRectangle();
}

// Handle the MeasureItem event for an owner-drawn ListBox.
private void ListBox1_MeasureItem(object sender, 
    MeasureItemEventArgs e)
{

    // Cast the sender object back to ListBox type.
    ListBox theListBox = (ListBox) sender;

    // Get the string contained in each item.
    string itemString = (string) theListBox.Items[e.Index];

    // Split the string at the " . "  character.
    string[] resultStrings = itemString.Split('.');

    // If the string contains more than one period, increase the 
    // height by ten pixels; otherwise, increase the height by 
    // five pixels.
    if (resultStrings.Length>2)
    {
        e.ItemHeight += 10;
    }
    else
    {
        e.ItemHeight += 5;
    }

}

Friend WithEvents ListBox1 As System.Windows.Forms.ListBox

Private Sub InitializeOwnerDrawnListBox()
    Me.ListBox1 = New System.Windows.Forms.ListBox

    ' Set the location and size.
    ListBox1.Location = New Point(20, 20)
    ListBox1.Size = New Size(240, 240)

    ' Populate the ListBox.ObjectCollection property 
    ' with several strings, using the AddRange method.
    Me.ListBox1.Items.AddRange(New Object() _
        {"System.Windows.Forms", "System.Drawing", "System.Xml", _
        "System.Net", "System.Runtime.Remoting", "System.Web"})

    ' Turn off the scrollbar.
    ListBox1.ScrollAlwaysVisible = False

    ' Set the border style to a single, flat border.
    ListBox1.BorderStyle = BorderStyle.FixedSingle

    ' Set the DrawMode property to the OwnerDrawVariable value. 
    ' This means the MeasureItem and DrawItem events must be 
    ' handled.
    ListBox1.DrawMode = DrawMode.OwnerDrawVariable
    Me.Controls.Add(Me.ListBox1)
End Sub


' Handle the DrawItem event for an owner-drawn ListBox.
Private Sub ListBox1_DrawItem(ByVal sender As Object, _
    ByVal e As DrawItemEventArgs) Handles ListBox1.DrawItem

    ' If the item is the selected item, then draw the rectangle filled in
    ' blue. The item is selected when a bitwise And of the State property
    ' and the DrawItemState.Selected property is true. 
    If (e.State And DrawItemState.Selected = DrawItemState.Selected) Then
        e.Graphics.FillRectangle(Brushes.CornflowerBlue, e.Bounds)
    Else
        ' Otherwise, draw the rectangle filled in beige.
        e.Graphics.FillRectangle(Brushes.Beige, e.Bounds)
    End If

    ' Draw a rectangle in blue around each item.
    e.Graphics.DrawRectangle(Pens.Blue, e.Bounds)

    ' Draw the text in the item.
    e.Graphics.DrawString(Me.ListBox1.Items(e.Index), Me.Font, _
        Brushes.Black, e.Bounds.X, e.Bounds.Y)

    ' Draw the focus rectangle around the selected item.
    e.DrawFocusRectangle()
End Sub

' Handle the MeasureItem event for an owner-drawn ListBox.
Private Sub ListBox1_MeasureItem(ByVal sender As Object, _
    ByVal e As MeasureItemEventArgs) Handles ListBox1.MeasureItem

    ' Cast the sender object back to ListBox type.
    Dim theListBox As ListBox = CType(sender, ListBox)

    ' Get the string contained in each item.
    Dim itemString As String = CType(theListBox.Items(e.Index), String)

    ' Split the string at the " . "  character.
    Dim resultStrings() As String = itemString.Split(".")

    ' If the string contains more than one period, increase the 
    ' height by ten pixels; otherwise, increase the height by 
    ' five pixels.
    If (resultStrings.Length > 2) Then
        e.ItemHeight += 10
    Else
        e.ItemHeight += 5
    End If

End Sub

Remarques

La ListBox.ObjectCollection classe stocke les éléments affichés dans ListBoxle.The ListBox.ObjectCollection class stores the items displayed in the ListBox. Deux autres collections définies dans la ListBox classe vous permettent de déterminer les éléments sélectionnés dans cette collection.There are two other collections defined within the ListBox class that enable you to determine what items are selected within this collection. La ListBox.SelectedObjectCollection classe fournit des propriétés et des méthodes pour déterminer les éléments qui sont ListBox.ObjectCollectionsélectionnés dans le ListBox.SelectedIndexCollection , tandis que la classe vous permet de déterminer ListBox.ObjectCollection quels index dans le sont sélectionnés.The ListBox.SelectedObjectCollection class provides properties and methods for determining what items are selected within the ListBox.ObjectCollection, while the ListBox.SelectedIndexCollection class enables you to determine what indexes within the ListBox.ObjectCollection are selected.

Il existe plusieurs façons d’ajouter des éléments à la collection.There are a number of ways to add items to the collection. La Add méthode offre la possibilité d’ajouter un objet unique à la collection.The Add method provides the ability to add a single object to the collection. Pour ajouter un certain nombre d’objets à la collection, vous devez créer un tableau d’éléments et l’assigner à la AddRange méthode.To add a number of objects to the collection, you create an array of items and assign it to the AddRange method. Si vous souhaitez insérer un objet à un emplacement spécifique dans la collection, vous pouvez utiliser la Insert méthode.If you want to insert an object at a specific location within the collection, you can use the Insert method. Pour supprimer des éléments, vous pouvez utiliser la Remove méthode ou la RemoveAt méthode si vous savez où l’élément se trouve dans la collection.To remove items, you can use either the Remove method or the RemoveAt method if you know where the item is located within the collection. La Clear méthode vous permet de supprimer tous les éléments de la collection au lieu d' Remove utiliser la méthode pour supprimer un seul élément à la fois.The Clear method enables you to remove all items from the collection instead of using the Remove method to remove a single item at a time.

Vous pouvez également manipuler les éléments d’un ListBox à l’aide DataSource de la propriété.You can also manipulate the items of a ListBox by using the DataSource property. Si vous utilisez la DataSource propriété pour ajouter des éléments à ListBoxun, vous pouvez afficher les éléments dans ListBox la à Items l’aide de la propriété, mais vous ne pouvez pas ajouter ListBox.ObjectCollectionou supprimer des éléments de la liste à l’aide des méthodes de.If you use the DataSource property to add items to a ListBox, you can view the items in the ListBox using the Items property but you cannot add or remove items from the list using the methods of the ListBox.ObjectCollection.

En plus des méthodes et des propriétés pour l’ajout et la suppression ListBox.ObjectCollection d’éléments, le fournit également des méthodes pour rechercher des éléments dans la collection.In addition to methods and properties for adding and removing items, the ListBox.ObjectCollection also provides methods to find items within the collection. La Contains méthode vous permet de déterminer si un objet est membre de la collection.The Contains method enables you to determine whether an object is a member of the collection. Une fois que vous savez que l’élément se trouve dans la collection, vous pouvez IndexOf utiliser la méthode pour déterminer où se trouve l’élément dans la collection.Once you know that the item is located within the collection, you can use the IndexOf method to determine where the item is located within the collection.

Constructeurs

ListBox.ObjectCollection(ListBox)

Initialise une nouvelle instance de ListBox.ObjectCollection.Initializes a new instance of ListBox.ObjectCollection.

ListBox.ObjectCollection(ListBox, ListBox+ObjectCollection)

Initiative une nouvelle instance de ListBox.ObjectCollection basée sur un autre ListBox.ObjectCollection.Initializes a new instance of ListBox.ObjectCollection based on another ListBox.ObjectCollection.

ListBox.ObjectCollection(ListBox, Object[])

Initialise une nouvelle instance de ListBox.ObjectCollection contenant un tableau d'objets.Initializes a new instance of ListBox.ObjectCollection containing an array of objects.

Propriétés

Count

Obtient le nombre d’éléments de la collection.Gets the number of items in the collection.

IsReadOnly

Obtient une valeur indiquant si la collection est en lecture seule.Gets a value indicating whether the collection is read-only.

Item[Int32]

Obtient ou définit l'élément à l'index spécifié dans la collection.Gets or sets the item at the specified index within the collection.

Méthodes

Add(Object)

Ajoute un élément à la liste d'éléments pour ListBox.Adds an item to the list of items for a ListBox.

AddRange(ListBox+ObjectCollection)

Ajoute les éléments d'un ListBox.ObjectCollection existant à la liste d'éléments dans ListBox.Adds the items of an existing ListBox.ObjectCollection to the list of items in a ListBox.

AddRange(Object[])

Ajoute un tableau d'éléments à la liste d'éléments pour ListBox.Adds an array of items to the list of items for a ListBox.

Clear()

Supprime tous les éléments de la collection.Removes all items from the collection.

Contains(Object)

Détermine si l'élément spécifié réside dans la collection.Determines whether the specified item is located within the collection.

CopyTo(Object[], Int32)

Copie la collection entière dans un tableau d'objets existant à un emplacement spécifié dans le tableau.Copies the entire collection into an existing array of objects at a specified location within the array.

Equals(Object)

Détermine si l'objet spécifié est identique à l'objet actuel.Determines whether the specified object is equal to the current object.

(Hérité de Object)
GetEnumerator()

Retourne un énumérateur qui peut être utilisé pour itérer au sein de la collection d'éléments.Returns an enumerator to use to iterate through the item collection.

GetHashCode()

Fait office de fonction de hachage par défaut.Serves as the default hash function.

(Hérité de Object)
GetType()

Obtient le Type de l'instance actuelle.Gets the Type of the current instance.

(Hérité de Object)
IndexOf(Object)

Retourne l'index dans la collection de l'élément spécifié.Returns the index within the collection of the specified item.

Insert(Int32, Object)

Insère un élément dans la zone de liste à l'index spécifié.Inserts an item into the list box at the specified index.

MemberwiseClone()

Crée une copie superficielle de l'objet Object actuel.Creates a shallow copy of the current Object.

(Hérité de Object)
Remove(Object)

Supprime l'objet spécifié de la collection.Removes the specified object from the collection.

RemoveAt(Int32)

Supprime l'élément à l'index spécifié dans la collection.Removes the item at the specified index within the collection.

ToString()

Retourne une chaîne qui représente l'objet actuel.Returns a string that represents the current object.

(Hérité de Object)

Implémentations d’interfaces explicites

ICollection.CopyTo(Array, Int32)

Copie les éléments de la collection dans un tableau, en commençant au niveau d’un index de tableau particulier.Copies the elements of the collection to an array, starting at a particular array index.

ICollection.IsSynchronized

Pour obtenir une description de ce membre, consultez IsSynchronized.For a description of this member, see IsSynchronized.

ICollection.SyncRoot

Pour obtenir une description de ce membre, consultez SyncRoot.For a description of this member, see SyncRoot.

IList.Add(Object)

Ajoute un objet à la classe ListBox.Adds an object to the ListBox class.

IList.IsFixedSize

Pour obtenir une description de ce membre, consultez IsFixedSize.For a description of this member, see IsFixedSize.

Méthodes d’extension

Cast<TResult>(IEnumerable)

Effectue un cast des éléments d'un IEnumerable vers le type spécifié.Casts the elements of an IEnumerable to the specified type.

OfType<TResult>(IEnumerable)

Filtre les éléments d'un IEnumerable en fonction du type spécifié.Filters the elements of an IEnumerable based on a specified type.

AsParallel(IEnumerable)

Active la parallélisation d'une requête.Enables parallelization of a query.

AsQueryable(IEnumerable)

Convertit un IEnumerable en IQueryable.Converts an IEnumerable to an IQueryable.

S’applique à

Voir aussi