ListBox.ObjectCollection Classe

Définition

Représente la collection d’éléments dans un ListBox.

public: ref class ListBox::ObjectCollection : System::Collections::IList
[System.ComponentModel.ListBindable(false)]
public class ListBox.ObjectCollection : System.Collections.IList
[<System.ComponentModel.ListBindable(false)>]
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 propriétaire dessiné ListBox en définissant la DrawMode propriété sur la OwnerDrawVariable valeur et en gérant les DrawItem événements et .MeasureItem Il montre également la définition des BorderStyle propriétés et et ScrollAlwaysVisible l’utilisation de la AddRange méthode .

Pour exécuter cet exemple, collez-le dans un formulaire vide qui importe l’espace System.Drawing de noms et l’espace de System.Windows.Forms noms. Appelez InitializeOwnerDrawnListBox à partir du constructeur ou Load de la méthode du formulaire.

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 .ListBox Il existe deux autres collections définies dans la ListBox classe qui vous permettent de déterminer les éléments sélectionnés au sein de cette collection. La ListBox.SelectedObjectCollection classe fournit des propriétés et des méthodes permettant de déterminer quels éléments sont sélectionnés dans le ListBox.ObjectCollection, tandis que la ListBox.SelectedIndexCollection classe vous permet de déterminer les index dans les ListBox.ObjectCollection éléments sélectionnés.

Il existe plusieurs façons d’ajouter des éléments à la collection. La Add méthode permet d’ajouter un seul objet à la collection. Pour ajouter un certain nombre d’objets à la collection, vous créez un tableau d’éléments et vous l’affectez à la AddRange méthode . Si vous souhaitez insérer un objet à un emplacement spécifique au sein de la collection, vous pouvez utiliser la Insert méthode . Pour supprimer des éléments, vous pouvez utiliser la Remove méthode ou la RemoveAt méthode si vous savez où se trouve l’élément dans la collection. La Clear méthode vous permet de supprimer tous les éléments de la collection au lieu d’utiliser la Remove méthode pour supprimer un seul élément à la fois.

Vous pouvez également manipuler les éléments d’un ListBox à l’aide de la DataSource propriété . Si vous utilisez la DataSource propriété pour ajouter des éléments à un ListBox, vous pouvez afficher les éléments dans le à l’aide ListBox de la Items propriété , mais vous ne pouvez pas ajouter ou supprimer des éléments de la liste à l’aide des méthodes de .ListBox.ObjectCollection

Outre les méthodes et propriétés permettant d’ajouter et de supprimer des éléments, le ListBox.ObjectCollection fournit également des méthodes permettant de rechercher des éléments dans la collection. La Contains méthode vous permet de déterminer si un objet est membre de la collection. Une fois que vous savez que l’élément se trouve dans la collection, vous pouvez utiliser la IndexOf méthode pour déterminer où se trouve l’élément dans la collection.

Constructeurs

ListBox.ObjectCollection(ListBox)

Initialise une nouvelle instance de ListBox.ObjectCollection.

ListBox.ObjectCollection(ListBox, ListBox+ObjectCollection)

Initiative une nouvelle instance de ListBox.ObjectCollection basée sur un autre ListBox.ObjectCollection.

ListBox.ObjectCollection(ListBox, Object[])

Initialise une nouvelle instance de ListBox.ObjectCollection contenant un tableau d'objets.

Propriétés

Count

Obtient le nombre d’éléments de la collection.

IsReadOnly

Obtient une valeur indiquant si la collection est en lecture seule.

Item[Int32]

Obtient ou définit l'élément à l'index spécifié dans la collection.

Méthodes

Add(Object)

Ajoute un élément à la liste d'éléments pour ListBox.

AddRange(ListBox+ObjectCollection)

Ajoute les éléments d'un ListBox.ObjectCollection existant à la liste d'éléments dans ListBox.

AddRange(Object[])

Ajoute un tableau d'éléments à la liste d'éléments pour ListBox.

Clear()

Supprime tous les éléments de la collection.

Contains(Object)

Détermine si l'élément spécifié réside dans la collection.

CopyTo(Object[], Int32)

Copie la collection entière dans un tableau d'objets existant à un emplacement spécifié dans le tableau.

Equals(Object)

Détermine si l'objet spécifié est égal à l'objet actuel.

(Hérité de Object)
GetEnumerator()

Retourne un énumérateur qui peut être utilisé pour itérer au sein de la collection d'éléments.

GetHashCode()

Fait office de fonction de hachage par défaut.

(Hérité de Object)
GetType()

Obtient le Type de l'instance actuelle.

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

Retourne l'index dans la collection de l'élément spécifié.

Insert(Int32, Object)

Insère un élément dans la zone de liste à l'index spécifié.

MemberwiseClone()

Crée une copie superficielle du Object actuel.

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

Supprime l’objet spécifié de la collection.

RemoveAt(Int32)

Supprime l'élément à l'index spécifié dans la collection.

ToString()

Retourne une chaîne qui représente l'objet actuel.

(Hérité de Object)

Implémentations d’interfaces explicites

ICollection.CopyTo(Array, Int32)

Cette API prend en charge l'infrastructure du produit et n'est pas destinée à être utilisée directement à partir de votre code.

Copie les éléments de la collection dans un tableau, en commençant au niveau d’un index de tableau particulier.

ICollection.IsSynchronized

Pour obtenir une description de ce membre, consultez IsSynchronized.

ICollection.SyncRoot

Pour obtenir une description de ce membre, consultez SyncRoot.

IList.Add(Object)

Cette API prend en charge l'infrastructure du produit et n'est pas destinée à être utilisée directement à partir de votre code.

Ajoute un objet à la classe ListBox.

IList.Contains(Object)

Détermine si IList contient une valeur spécifique.

IList.IndexOf(Object)

Détermine l'index d'un élément spécifique d'IList.

IList.Insert(Int32, Object)

Insère un élément dans IList à l’index spécifié.

IList.IsFixedSize

Pour obtenir une description de ce membre, consultez IsFixedSize.

IList.Item[Int32]

Obtient ou définit l'élément au niveau de l'index spécifié.

IList.Remove(Object)

Supprime la première occurrence d’un objet spécifique de IList.

Méthodes d’extension

Cast<TResult>(IEnumerable)

Effectue un cast des éléments d'un IEnumerable vers le type spécifié.

OfType<TResult>(IEnumerable)

Filtre les éléments d'un IEnumerable en fonction du type spécifié.

AsParallel(IEnumerable)

Active la parallélisation d'une requête.

AsQueryable(IEnumerable)

Convertit un IEnumerable en IQueryable.

S’applique à

Voir aussi