ListBox.ObjectCollection Klasa

Definicja

Reprezentuje kolekcję elementów w obiekcie ListBox.

C#
[System.ComponentModel.ListBindable(false)]
public class ListBox.ObjectCollection : System.Collections.IList
Dziedziczenie
ListBox.ObjectCollection
Pochodne
Atrybuty
Implementuje

Przykłady

Poniższy przykład kodu przedstawia rysowanie ListBox właściciela przez ustawienie DrawMode właściwości na OwnerDrawVariable wartość i obsługę zdarzeń DrawItem i MeasureItem . Pokazuje również ustawianie BorderStyle właściwości i ScrollAlwaysVisible i przy użyciu AddRange metody .

Aby uruchomić ten przykład, wklej go do pustego formularza, który importuje System.Drawing przestrzeń nazw i System.Windows.Forms przestrzeń nazw. Wywołanie InitializeOwnerDrawnListBox z konstruktora lub Load metody formularza.

C#
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;
    }
}

Uwagi

Klasa ListBox.ObjectCollection przechowuje elementy wyświetlane w obiekcie ListBox. Istnieją dwie inne kolekcje zdefiniowane w ListBox klasie, które umożliwiają określenie elementów wybranych w tej kolekcji. Klasa ListBox.SelectedObjectCollection udostępnia właściwości i metody określania, które elementy są wybierane w obiekcie ListBox.ObjectCollection, podczas gdy ListBox.SelectedIndexCollection klasa umożliwia określenie, jakie indeksy w obrębie ListBox.ObjectCollection są wybrane.

Istnieje wiele sposobów dodawania elementów do kolekcji. Metoda Add zapewnia możliwość dodawania pojedynczego obiektu do kolekcji. Aby dodać wiele obiektów do kolekcji, należy utworzyć tablicę elementów i przypisać ją do AddRange metody . Jeśli chcesz wstawić obiekt w określonej lokalizacji w kolekcji, możesz użyć Insert metody . Aby usunąć elementy, możesz użyć Remove metody lub RemoveAt metody, jeśli wiesz, gdzie znajduje się element w kolekcji. Metoda Clear umożliwia usunięcie wszystkich elementów z kolekcji zamiast użycia Remove metody w celu usunięcia pojedynczego elementu naraz.

Można również manipulować elementami elementu ListBox za pomocą DataSource właściwości . Jeśli używasz DataSource właściwości do dodawania elementów do elementu ListBox, możesz wyświetlić elementy we ListBox właściwości przy użyciu właściwości , ale nie można dodawać ani usuwać elementów z listy przy Items użyciu metod ListBox.ObjectCollection.

Oprócz metod i właściwości dodawania i usuwania elementów, udostępnia ListBox.ObjectCollection również metody znajdowania elementów w kolekcji. Metoda Contains umożliwia określenie, czy obiekt jest elementem członkowskim kolekcji. Gdy wiesz, że element znajduje się w kolekcji, możesz użyć IndexOf metody , aby określić, gdzie znajduje się element w kolekcji.

Konstruktory

ListBox.ObjectCollection(ListBox)

Inicjuje nowe wystąpienie klasy ListBox.ObjectCollection.

ListBox.ObjectCollection(ListBox, ListBox+ObjectCollection)

Inicjuje ListBox.ObjectCollection nowe wystąpienie na podstawie innego ListBox.ObjectCollectionelementu .

ListBox.ObjectCollection(ListBox, Object[])

Inicjuje ListBox.ObjectCollection nowe wystąpienie zawierające tablicę obiektów.

Właściwości

Count

Pobiera liczbę elementów w kolekcji.

IsReadOnly

Pobiera wartość wskazującą, czy kolekcja jest przeznaczona tylko do odczytu.

Item[Int32]

Pobiera lub ustawia element w określonym indeksie w kolekcji.

Metody

Add(Object)

Dodaje element do listy elementów dla elementu ListBox.

AddRange(ListBox+ObjectCollection)

Dodaje elementy istniejącego ListBox.ObjectCollection elementu do listy elementów w obiekcie ListBox.

AddRange(Object[])

Dodaje tablicę elementów do listy elementów dla elementu ListBox.

Clear()

Usuwa wszystkie elementy z kolekcji.

Contains(Object)

Określa, czy określony element znajduje się w kolekcji.

CopyTo(Object[], Int32)

Kopiuje całą kolekcję do istniejącej tablicy obiektów w określonej lokalizacji w tablicy.

Equals(Object)

Określa, czy dany obiekt jest taki sam, jak bieżący obiekt.

(Odziedziczone po Object)
GetEnumerator()

Zwraca moduł wyliczający, który ma być używany do iterowania w kolekcji elementów.

GetHashCode()

Służy jako domyślna funkcja skrótu.

(Odziedziczone po Object)
GetType()

Type Pobiera bieżące wystąpienie.

(Odziedziczone po Object)
IndexOf(Object)

Zwraca indeks w kolekcji określonego elementu.

Insert(Int32, Object)

Wstawia element do pola listy w określonym indeksie.

MemberwiseClone()

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
Remove(Object)

Usuwa określony obiekt z kolekcji.

RemoveAt(Int32)

Usuwa element w określonym indeksie w kolekcji.

ToString()

Zwraca ciąg reprezentujący bieżący obiekt.

(Odziedziczone po Object)

Jawne implementacje interfejsu

ICollection.CopyTo(Array, Int32)

Ten interfejs API obsługuje infrastrukturę produktu i nie jest przeznaczony do użycia bezpośrednio z poziomu kodu.

Kopiuje elementy kolekcji do tablicy, zaczynając od określonego indeksu tablicy.

ICollection.IsSynchronized

Aby uzyskać opis tego elementu członkowskiego, zobacz IsSynchronized.

ICollection.SyncRoot

Aby uzyskać opis tego elementu członkowskiego, zobacz SyncRoot.

IList.Add(Object)

Ten interfejs API obsługuje infrastrukturę produktu i nie jest przeznaczony do użycia bezpośrednio z poziomu kodu.

Dodaje obiekt do ListBox klasy.

IList.Contains(Object)

Określa, czy element IList zawiera określoną wartość.

IList.IndexOf(Object)

Określa indeks określonego elementu w elemencie IList.

IList.Insert(Int32, Object)

Wstawia element do IList określonego indeksu.

IList.IsFixedSize

Aby uzyskać opis tego elementu członkowskiego, zobacz IsFixedSize.

IList.Item[Int32]

Pobiera lub ustawia element pod określonym indeksem.

IList.Remove(Object)

Usuwa pierwsze wystąpienie określonego obiektu z obiektu IList.

Metody rozszerzania

Cast<TResult>(IEnumerable)

Rzutuje elementy elementu IEnumerable do określonego typu.

OfType<TResult>(IEnumerable)

Filtruje elementy elementu IEnumerable na podstawie określonego typu.

AsParallel(IEnumerable)

Umożliwia równoległość zapytania.

AsQueryable(IEnumerable)

Konwertuje element IEnumerable na .IQueryable

Dotyczy

Produkt Wersje
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9

Zobacz też