ListBox.ObjectCollection Klasa

Definicja

Reprezentuje kolekcję elementów w 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
Dziedziczenie
ListBox.ObjectCollection
Pochodne
Atrybuty
Implementuje

Przykłady

Poniższy przykład kodu demonstruje właociciela ListBox przez DrawMode ustawienie właściwości na OwnerDrawVariable wartość i obsługę DrawItem zdarzeń i MeasureItem .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. Przedstawiono w BorderStyle nim również ustawienia i ScrollAlwaysVisible właściwości oraz przy użyciu AddRange metody.It also demonstrates setting the BorderStyle and ScrollAlwaysVisible properties and using the AddRange method.

Aby uruchomić ten przykład, wklej go do pustego formularza, który importuje System.Drawing przestrzeń nazw System.Windows.Forms i przestrzeń nazw.To run this example, paste it into an empty form that imports the System.Drawing namespace and the System.Windows.Forms namespace. Wywołanie InitializeOwnerDrawnListBox z konstruktora lub Load metody formularza.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

Uwagi

Klasa przechowuje elementy wyświetlane ListBoxw. ListBox.ObjectCollectionThe ListBox.ObjectCollection class stores the items displayed in the ListBox. Istnieją dwie inne kolekcje zdefiniowane w obrębie ListBox klasy, które umożliwiają określenie, które elementy są wybrane w tej kolekcji.There are two other collections defined within the ListBox class that enable you to determine what items are selected within this collection. Klasa zawiera właściwości i metody służące do określania ListBox.ObjectCollection, które elementy są wybrane w, podczas ListBox.SelectedIndexCollection gdy Klasa ListBox.ObjectCollection umożliwia określenie, jakie indeksy w obrębie są zaznaczone. ListBox.SelectedObjectCollectionThe 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.

Istnieje kilka sposobów dodawania elementów do kolekcji.There are a number of ways to add items to the collection. Add Metoda umożliwia dodanie pojedynczego obiektu do kolekcji.The Add method provides the ability to add a single object to the collection. Aby dodać wiele obiektów do kolekcji, należy utworzyć tablicę elementów i przypisać ją do AddRange metody.To add a number of objects to the collection, you create an array of items and assign it to the AddRange method. Jeśli chcesz wstawić obiekt w określonej lokalizacji w kolekcji, możesz użyć Insert metody.If you want to insert an object at a specific location within the collection, you can use the Insert method. Aby usunąć elementy, można użyć Remove metody RemoveAt lub metody, Jeśli wiesz, gdzie znajduje się w kolekcji.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. Metoda umożliwia usunięcie wszystkich elementów z kolekcji zamiast Remove używać metody do usuwania pojedynczego elementu jednocześnie. ClearThe 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.

Można również manipulować elementami a ListBox za DataSource pomocą właściwości.You can also manipulate the items of a ListBox by using the DataSource property. Jeśli DataSource używasz właściwości, aby dodać elementy do elementu ListBox, można ListBox wyświetlić Items elementy w użyciu właściwości, ale nie można dodawać ListBox.ObjectCollectionani usuwać elementów z listy przy użyciu metod.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.

Oprócz metod i właściwości do dodawania i usuwania elementów, ListBox.ObjectCollection udostępnia również metody znajdowania elementów w kolekcji.In addition to methods and properties for adding and removing items, the ListBox.ObjectCollection also provides methods to find items within the collection. Contains Metoda pozwala określić, czy obiekt jest członkiem kolekcji.The Contains method enables you to determine whether an object is a member of the collection. Gdy wiesz, że element znajduje się w kolekcji, możesz użyć IndexOf metody, aby określić, gdzie znajduje się w kolekcji.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.

Konstruktory

ListBox.ObjectCollection(ListBox)

Inicjuje nowe wystąpienie ListBox.ObjectCollection.Initializes a new instance of ListBox.ObjectCollection.

ListBox.ObjectCollection(ListBox, ListBox+ObjectCollection)

Inicjuje nowe wystąpienie ListBox.ObjectCollection na podstawie innego ListBox.ObjectCollection.Initializes a new instance of ListBox.ObjectCollection based on another ListBox.ObjectCollection.

ListBox.ObjectCollection(ListBox, Object[])

Inicjuje nowe wystąpienie ListBox.ObjectCollection zawierające tablicę obiektów.Initializes a new instance of ListBox.ObjectCollection containing an array of objects.

Właściwości

Count

Pobiera liczbę elementów w kolekcji.Gets the number of items in the collection.

IsReadOnly

Pobiera wartość wskazującą, czy kolekcja jest tylko do odczytu.Gets a value indicating whether the collection is read-only.

Item[Int32]

Pobiera lub ustawia element o określonym indeksie w kolekcji.Gets or sets the item at the specified index within the collection.

Metody

Add(Object)

Dodaje element do listy elementów dla ListBoxelementu.Adds an item to the list of items for a ListBox.

AddRange(ListBox+ObjectCollection)

Dodaje elementy istniejącej ListBox.ObjectCollection do listy elementów ListBoxw.Adds the items of an existing ListBox.ObjectCollection to the list of items in a ListBox.

AddRange(Object[])

Dodaje tablicę elementów do listy elementów dla elementu ListBox.Adds an array of items to the list of items for a ListBox.

Clear()

Usuwa wszystkie elementy z kolekcji.Removes all items from the collection.

Contains(Object)

Określa, czy określony element znajduje się w kolekcji.Determines whether the specified item is located within the collection.

CopyTo(Object[], Int32)

Kopiuje całą kolekcję do istniejącej tablicy obiektów w określonej lokalizacji w tablicy.Copies the entire collection into an existing array of objects at a specified location within the array.

Equals(Object)

Określa, czy określony obiekt jest równy bieżącemu obiektowi.Determines whether the specified object is equal to the current object.

(Odziedziczone po Object)
GetEnumerator()

Zwraca moduł wyliczający, który będzie używany do iteracji w kolekcji elementów.Returns an enumerator to use to iterate through the item collection.

GetHashCode()

Służy jako domyślna funkcja skrótu.Serves as the default hash function.

(Odziedziczone po Object)
GetType()

Type Pobiera bieżące wystąpienie.Gets the Type of the current instance.

(Odziedziczone po Object)
IndexOf(Object)

Zwraca indeks w kolekcji określonego elementu.Returns the index within the collection of the specified item.

Insert(Int32, Object)

Wstawia element do pola listy o określonym indeksie.Inserts an item into the list box at the specified index.

MemberwiseClone()

Tworzy skróconą kopię bieżącego Objectelementu.Creates a shallow copy of the current Object.

(Odziedziczone po Object)
Remove(Object)

Usuwa określony obiekt z kolekcji.Removes the specified object from the collection.

RemoveAt(Int32)

Usuwa element o określonym indeksie w kolekcji.Removes the item at the specified index within the collection.

ToString()

Zwraca ciąg, który reprezentuje bieżący obiekt.Returns a string that represents the current object.

(Odziedziczone po Object)

Jawne implementacje interfejsu

ICollection.CopyTo(Array, Int32)

Kopiuje elementy kolekcji do tablicy, rozpoczynając od określonego indeksu tablicy.Copies the elements of the collection to an array, starting at a particular array index.

ICollection.IsSynchronized

Aby uzyskać opis tego elementu członkowskiego, IsSynchronizedZobacz.For a description of this member, see IsSynchronized.

ICollection.SyncRoot

Aby uzyskać opis tego elementu członkowskiego, SyncRootZobacz.For a description of this member, see SyncRoot.

IList.Add(Object)

Dodaje obiekt do ListBox klasy.Adds an object to the ListBox class.

IList.IsFixedSize

Aby uzyskać opis tego elementu członkowskiego, IsFixedSizeZobacz.For a description of this member, see IsFixedSize.

Metody rozszerzania

Cast<TResult>(IEnumerable)

Rzutuje elementy IEnumerable do określonego typu.Casts the elements of an IEnumerable to the specified type.

OfType<TResult>(IEnumerable)

Filtruje elementy IEnumerable w oparciu o określony typ.Filters the elements of an IEnumerable based on a specified type.

AsParallel(IEnumerable)

Włącza przetwarzanie równoległe zapytania.Enables parallelization of a query.

AsQueryable(IEnumerable)

IEnumerable KonwertujeIQueryabledo.Converts an IEnumerable to an IQueryable.

Dotyczy

Zobacz też