ListBox.ObjectCollection Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Stellt die Auflistung von Elementen in einem ListBox dar.
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
- Vererbung
-
ListBox.ObjectCollection
- Abgeleitet
- Attribute
- Implementiert
Beispiele
Im folgenden Codebeispiel wird ein Besitzer gezeichnetListBox, indem die Eigenschaft auf den OwnerDrawVariable
DrawMode Wert festgelegt und die DrawItem Ereignisse und MeasureItem behandelt werden. Außerdem wird das Festlegen der BorderStyle Eigenschaften und und ScrollAlwaysVisible die Verwendung der AddRange -Methode veranschaulicht.
Um dieses Beispiel auszuführen, fügen Sie es in ein leeres Formular ein, das den System.Drawing Namespace und den System.Windows.Forms Namespace importiert. Rufen Sie InitializeOwnerDrawnListBox
den Konstruktor oder Load
die Methode des Formulars auf.
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 in ListBoxangezeigten Elemente. Es sind zwei weitere Sammlungen innerhalb der ListBox -Klasse definiert, mit denen Sie bestimmen können, welche Elemente in dieser Auflistung ausgewählt sind. Die ListBox.SelectedObjectCollection -Klasse stellt Eigenschaften und Methoden bereit, um zu bestimmen, welche Elemente innerhalb von ListBox.ObjectCollectionausgewählt sind, während Sie mit der ListBox.SelectedIndexCollection -Klasse bestimmen können, welche Indizes innerhalb des ListBox.ObjectCollection ausgewählt werden.
Es gibt eine Reihe von Möglichkeiten, der Auflistung Elemente hinzuzufügen. Die Add -Methode bietet die Möglichkeit, der Auflistung ein einzelnes Objekt hinzuzufügen. Um der Auflistung eine Reihe von Objekten hinzuzufügen, erstellen Sie ein Array von Elementen und weisen es der AddRange -Methode zu. Wenn Sie ein Objekt an einer bestimmten Stelle innerhalb der Auflistung einfügen möchten, können Sie die Insert -Methode verwenden. Um Elemente zu entfernen, können Sie entweder die Remove -Methode oder die RemoveAt -Methode verwenden, wenn Sie wissen, wo sich das Element in der Auflistung befindet. Mit Clear der -Methode können Sie alle Elemente aus der Auflistung entfernen, anstatt die Remove -Methode zu verwenden, um jeweils ein einzelnes Element zu entfernen.
Sie können die Elemente eines auch mithilfe der ListBoxDataSource -Eigenschaft bearbeiten. Wenn Sie die DataSource -Eigenschaft zum Hinzufügen von Elementen zu einem ListBoxverwenden, können Sie die Elemente in mit der ItemsListBox -Eigenschaft anzeigen, aber sie können keine Elemente mit den Methoden von hinzufügen oder aus der ListBox.ObjectCollectionListe entfernen.
Zusätzlich zu Methoden und Eigenschaften zum Hinzufügen und Entfernen von Elementen stellt auch ListBox.ObjectCollection Methoden zum Suchen von Elementen in der Auflistung bereit. Mit Contains der -Methode können Sie bestimmen, ob ein Objekt ein Element der Auflistung ist. Sobald 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.
Konstruktoren
ListBox.ObjectCollection(ListBox) |
Initialisiert eine neue Instanz von ListBox.ObjectCollection. |
ListBox.ObjectCollection(ListBox, ListBox+ObjectCollection) |
Initialisiert eine neue Instanz von ListBox.ObjectCollection auf der Grundlage einer anderen ListBox.ObjectCollection. |
ListBox.ObjectCollection(ListBox, Object[]) |
Initialisiert eine neue Instanz von ListBox.ObjectCollection, die ein Array von Objekten enthält. |
Eigenschaften
Count |
Ruft die Anzahl der Elemente in der Auflistung ab. |
IsReadOnly |
Ruft einen Wert ab, der angibt, ob die Auflistung schreibgeschützt ist. |
Item[Int32] |
Ruft das Element am angegebenen Index in der Auflistung ab oder legt dieses fest. |
Methoden
Add(Object) |
Fügt der Liste von Elementen für eine ListBox ein Element hinzu. |
AddRange(ListBox+ObjectCollection) |
Fügt die Elemente einer vorhandenen ListBox.ObjectCollection der Liste von Elementen in einer ListBox hinzu. |
AddRange(Object[]) |
Fügt der Liste von Elementen für eine ListBox ein Array von Elementen hinzu. |
Clear() |
Entfernt alle Elemente aus der Auflistung. |
Contains(Object) |
Bestimmt, ob das angegebene Element in der Auflistung enthalten ist. |
CopyTo(Object[], Int32) |
Kopiert die gesamte Auflistung an eine angegebene Position in ein vorhandenes Array von Objekten. |
Equals(Object) |
Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist. (Geerbt von Object) |
GetEnumerator() |
Gibt einen Enumerator zurück, mit dem die Elementauflistung durchlaufen werden soll. |
GetHashCode() |
Fungiert als Standardhashfunktion. (Geerbt von Object) |
GetType() |
Ruft den Type der aktuellen Instanz ab. (Geerbt von Object) |
IndexOf(Object) |
Gibt den Index des angegebenen Elements in der Auflistung zurück. |
Insert(Int32, Object) |
Fügt ein Element am angegebenen Index in das Listenfeld ein. |
MemberwiseClone() |
Erstellt eine flache Kopie des aktuellen Object. (Geerbt von Object) |
Remove(Object) |
Entfernt das angegebene Objekt aus der Auflistung. |
RemoveAt(Int32) |
Entfernt das Element am angegebenen Index in der Auflistung. |
ToString() |
Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Geerbt von Object) |
Explizite Schnittstellenimplementierungen
ICollection.CopyTo(Array, Int32) |
Diese API unterstützt die Produktinfrastruktur und ist nicht für die direkte Verwendung aus Ihrem Code gedacht. Kopiert die Elemente der Auflistung in ein Array, wobei an einem bestimmten Arrayindex begonnen wird. |
ICollection.IsSynchronized |
Eine Beschreibung dieses Elements finden Sie unter IsSynchronized. |
ICollection.SyncRoot |
Eine Beschreibung dieses Elements finden Sie unter SyncRoot. |
IList.Add(Object) |
Diese API unterstützt die Produktinfrastruktur und ist nicht für die direkte Verwendung aus Ihrem Code gedacht. Fügt der ListBox-Klasse ein Objekt hinzu. |
IList.Contains(Object) |
Ermittelt, ob die IList einen bestimmten Wert enthält. |
IList.IndexOf(Object) |
Bestimmt den Index eines bestimmten Elements in der IList. |
IList.Insert(Int32, Object) |
Fügt am angegebenen Index ein Element in die IList ein. |
IList.IsFixedSize |
Eine Beschreibung dieses Elements finden Sie unter IsFixedSize. |
IList.Item[Int32] |
Ruft das Element am angegebenen Index ab oder legt dieses fest. |
IList.Remove(Object) |
Entfernt das erste Vorkommen eines angegebenen Objekts aus der IList. |
Erweiterungsmethoden
Cast<TResult>(IEnumerable) |
Wandelt die Elemente eines IEnumerable in den angegebenen Typ um |
OfType<TResult>(IEnumerable) |
Filtert die Elemente eines IEnumerable anhand eines angegebenen Typs |
AsParallel(IEnumerable) |
Ermöglicht die Parallelisierung einer Abfrage. |
AsQueryable(IEnumerable) |
Konvertiert einen IEnumerable in einen IQueryable. |