ListBox.ObjectCollection Klasse

Definition

Stellt die Auflistung von Elementen in einem ListBox dar.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
Vererbung
ListBox.ObjectCollection
Abgeleitet
Attribute
Implementiert

Beispiele

Im folgenden Codebeispiel wird ein vom Besitzer gezeichneter ListBox veranschaulicht, indem die OwnerDrawVariable DrawMode -Eigenschaft auf den- MeasureItem Wert festgelegt und die DrawItem Ereignisse und behandelt werden.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. Außerdem wird das Festlegen der BorderStyle Eigenschaften ScrollAlwaysVisible und und die Verwendung AddRange der-Methode veranschaulicht.It also demonstrates setting the BorderStyle and ScrollAlwaysVisible properties and using the AddRange method.

Um dieses Beispiel auszuführen, fügen Sie es in ein leeres Formular ein, System.Drawing das den-Namespace und den System.Windows.Forms -Namespace importiert.To run this example, paste it into an empty form that imports the System.Drawing namespace and the System.Windows.Forms namespace. Ruft InitializeOwnerDrawnListBox den-Konstruktor oder Load die-Methode des Formulars auf.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

Hinweise

Die ListBox.ObjectCollection -Klasse speichert die Elemente, die ListBoxin der angezeigt werden.The ListBox.ObjectCollection class stores the items displayed in the ListBox. In der ListBox -Klasse sind zwei weitere Sammlungen definiert, mit denen Sie bestimmen können, welche Elemente in dieser Auflistung ausgewählt werden.There are two other collections defined within the ListBox class that enable you to determine what items are selected within this collection. Die ListBox.SelectedObjectCollection -Klasse stellt Eigenschaften und Methoden bereit, um zu bestimmen, welche ListBox.ObjectCollectionElemente innerhalb der ListBox.SelectedIndexCollection ausgewählt werden, während die-Klasse Ihnen ListBox.ObjectCollection ermöglicht, zu bestimmen, welche Indizes in ausgewählt sind.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.

Es gibt eine Reihe von Möglichkeiten, der Auflistung Elemente hinzuzufügen.There are a number of ways to add items to the collection. Die Add -Methode bietet die Möglichkeit, der Auflistung ein einzelnes-Objekt hinzuzufügen.The Add method provides the ability to add a single object to the collection. Wenn Sie der Auflistung eine Reihe von Objekten hinzufügen möchten, erstellen Sie ein Array von Elementen, und weisen AddRange Sie es der-Methode zu.To add a number of objects to the collection, you create an array of items and assign it to the AddRange method. Wenn Sie ein Objekt an einer bestimmten Position in der Auflistung einfügen möchten, können Sie die Insert -Methode verwenden.If you want to insert an object at a specific location within the collection, you can use the Insert method. Zum Entfernen von Elementen können Sie entweder die Remove -Methode oder die RemoveAt -Methode verwenden, wenn Sie wissen, wo sich das Element in der Auflistung befindet.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. Mit Clear der-Methode können Sie alle Elemente aus der Auflistung entfernen, anstatt die Remove -Methode zu verwenden, um ein einzelnes Element gleichzeitig zu entfernen.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.

Mithilfe der ListBox DataSource -Eigenschaft können Sie auch die Elemente eines bearbeiten.You can also manipulate the items of a ListBox by using the DataSource property. Wenn Sie DataSource die-Eigenschaft zum Hinzufügen von Elementen ListBoxzu verwenden, können Sie die Elemente in ListBox der mithilfe Items der-Eigenschaft anzeigen, aber Sie können der Liste keine Elemente hinzufügen ListBox.ObjectCollectionoder aus der Liste entfernen, indem Sie die Methoden von verwenden.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.

Zusätzlich zu den Methoden und Eigenschaften zum Hinzufügen und Entfernen von Elementen ListBox.ObjectCollection stellt das auch Methoden zum Suchen von Elementen in der Auflistung bereit.In addition to methods and properties for adding and removing items, the ListBox.ObjectCollection also provides methods to find items within the collection. Mit Contains der-Methode können Sie feststellen, ob ein Objekt ein Member der Auflistung ist.The Contains method enables you to determine whether an object is a member of the collection. Wenn Sie wissen, dass sich das Element in der Auflistung befindet, können Sie die IndexOf -Methode verwenden, um zu bestimmen, wo sich das Element in der Auflistung befindet.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.

Konstruktoren

ListBox.ObjectCollection(ListBox)

Initialisiert eine neue Instanz von ListBox.ObjectCollection.Initializes a new instance of ListBox.ObjectCollection.

ListBox.ObjectCollection(ListBox, ListBox+ObjectCollection)

Initialisiert eine neue Instanz von ListBox.ObjectCollection auf der Grundlage einer anderen ListBox.ObjectCollection.Initializes a new instance of ListBox.ObjectCollection based on another ListBox.ObjectCollection.

ListBox.ObjectCollection(ListBox, Object[])

Initialisiert eine neue Instanz von ListBox.ObjectCollection, die ein Array von Objekten enthält.Initializes a new instance of ListBox.ObjectCollection containing an array of objects.

Eigenschaften

Count

Ruft die Anzahl der Elemente in der Auflistung ab.Gets the number of items in the collection.

IsReadOnly

Ruft einen Wert ab, der angibt, ob die Auflistung schreibgeschützt ist.Gets a value indicating whether the collection is read-only.

Item[Int32]

Ruft das Element am angegebenen Index in der Auflistung ab oder legt dieses fest.Gets or sets the item at the specified index within the collection.

Methoden

Add(Object)

Fügt der Liste von Elementen für eine ListBox ein Element hinzu.Adds an item to the list of items for a ListBox.

AddRange(ListBox+ObjectCollection)

Fügt die Elemente einer vorhandenen ListBox.ObjectCollection der Liste von Elementen in einer ListBox hinzu.Adds the items of an existing ListBox.ObjectCollection to the list of items in a ListBox.

AddRange(Object[])

Fügt der Liste von Elementen für eine ListBox ein Array von Elementen hinzu.Adds an array of items to the list of items for a ListBox.

Clear()

Entfernt alle Elemente aus der Auflistung.Removes all items from the collection.

Contains(Object)

Bestimmt, ob das angegebene Element in der Auflistung enthalten ist.Determines whether the specified item is located within the collection.

CopyTo(Object[], Int32)

Kopiert die gesamte Auflistung an eine angegebene Position in ein vorhandenes Array von Objekten.Copies the entire collection into an existing array of objects at a specified location within the array.

Equals(Object)

Bestimmt, ob das angegebene Objekt mit dem aktuellen Objekt identisch ist.Determines whether the specified object is equal to the current object.

(Geerbt von Object)
GetEnumerator()

Gibt einen Enumerator zurück, mit dem die Elementauflistung durchlaufen werden soll.Returns an enumerator to use to iterate through the item collection.

GetHashCode()

Fungiert als Standardhashfunktion.Serves as the default hash function.

(Geerbt von Object)
GetType()

Ruft den Type der aktuellen Instanz ab.Gets the Type of the current instance.

(Geerbt von Object)
IndexOf(Object)

Gibt den Index des angegebenen Elements in der Auflistung zurück.Returns the index within the collection of the specified item.

Insert(Int32, Object)

Fügt ein Element am angegebenen Index in das Listenfeld ein.Inserts an item into the list box at the specified index.

MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.Creates a shallow copy of the current Object.

(Geerbt von Object)
Remove(Object)

Entfernt das angegebene Objekt aus der Auflistung.Removes the specified object from the collection.

RemoveAt(Int32)

Entfernt das Element am angegebenen Index in der Auflistung.Removes the item at the specified index within the collection.

ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.Returns a string that represents the current object.

(Geerbt von Object)

Explizite Schnittstellenimplementierungen

ICollection.CopyTo(Array, Int32)

Kopiert die Elemente der Auflistung in ein Array, wobei an einem bestimmten Arrayindex begonnen wird.Copies the elements of the collection to an array, starting at a particular array index.

ICollection.IsSynchronized

Eine Beschreibung dieses Members finden Sie unter IsSynchronized.For a description of this member, see IsSynchronized.

ICollection.SyncRoot

Eine Beschreibung dieses Elements finden Sie unter SyncRoot.For a description of this member, see SyncRoot.

IList.Add(Object)

Fügt der ListBox-Klasse ein Objekt hinzu.Adds an object to the ListBox class.

IList.IsFixedSize

Eine Beschreibung dieses Members finden Sie unter IsFixedSize.For a description of this member, see IsFixedSize.

Erweiterungsmethoden

Cast<TResult>(IEnumerable)

Wandelt die Elemente eines IEnumerable in den angegebenen Typ umCasts the elements of an IEnumerable to the specified type.

OfType<TResult>(IEnumerable)

Filtert die Elemente eines IEnumerable anhand eines angegebenen TypsFilters the elements of an IEnumerable based on a specified type.

AsParallel(IEnumerable)

Ermöglicht die Parallelisierung einer Abfrage.Enables parallelization of a query.

AsQueryable(IEnumerable)

Konvertiert einen IEnumerable in einen IQueryable.Converts an IEnumerable to an IQueryable.

Gilt für:

Siehe auch