ListBox.ObjectCollection Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Rappresenta la raccolta di elementi in un oggetto 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
- Ereditarietà
-
ListBox.ObjectCollection
- Derivato
- Attributi
- Implementazioni
Esempio
Nell'esempio di codice seguente viene illustrato un proprietario disegnato impostando la DrawMode proprietà sul OwnerDrawVariable valore e gestendo gli DrawItem eventi e MeasureItem .ListBox Illustra anche l'impostazione delle BorderStyle proprietà e ScrollAlwaysVisible e l'uso del AddRange metodo .
Per eseguire questo esempio, incollarlo in un formato vuoto che importa lo System.Drawing spazio dei nomi e lo System.Windows.Forms spazio dei nomi. Chiamare InitializeOwnerDrawnListBox dal costruttore o Load dal metodo del modulo.
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
Commenti
La ListBox.ObjectCollection classe archivia gli elementi visualizzati in ListBox. Esistono due altre raccolte definite all'interno della ListBox classe che consentono di determinare quali elementi sono selezionati all'interno di questa raccolta. La ListBox.SelectedObjectCollection classe fornisce proprietà e metodi per determinare gli elementi selezionati all'interno di ListBox.ObjectCollection, mentre la ListBox.SelectedIndexCollection classe consente di determinare quali indici all'interno ListBox.ObjectCollection di sono selezionati.
Esistono diversi modi per aggiungere elementi alla raccolta. Il Add metodo consente di aggiungere un singolo oggetto alla raccolta. Per aggiungere un numero di oggetti all'insieme, creare una matrice di elementi e assegnarla al AddRange metodo . Se si desidera inserire un oggetto in una posizione specifica all'interno dell'insieme, è possibile utilizzare il Insert metodo . Per rimuovere gli elementi, è possibile utilizzare il Remove metodo o il RemoveAt metodo se si sa dove si trova l'elemento all'interno dell'insieme. Il Clear metodo consente di rimuovere tutti gli elementi dalla raccolta anziché utilizzare il Remove metodo per rimuovere un singolo elemento alla volta.
È anche possibile modificare gli elementi di un ListBox oggetto utilizzando la DataSource proprietà . Se si utilizza la DataSource proprietà per aggiungere elementi a un ListBoxoggetto , è possibile visualizzare gli elementi nell'oggetto ListBox utilizzando la Items proprietà , ma non è possibile aggiungere o rimuovere elementi dall'elenco utilizzando i metodi di ListBox.ObjectCollection.
Oltre ai metodi e alle proprietà per l'aggiunta e la rimozione di elementi, fornisce ListBox.ObjectCollection anche metodi per trovare elementi all'interno della raccolta. Il Contains metodo consente di determinare se un oggetto è un membro dell'insieme. Dopo aver rilevato che l'elemento si trova all'interno della raccolta, è possibile utilizzare il IndexOf metodo per determinare dove si trova l'elemento all'interno della raccolta.
Costruttori
| Nome | Descrizione |
|---|---|
| ListBox.ObjectCollection(ListBox, ListBox+ObjectCollection) |
Inizializza una nuova istanza di ListBox.ObjectCollection in base a un altro ListBox.ObjectCollectionoggetto . |
| ListBox.ObjectCollection(ListBox, Object[]) |
Inizializza una nuova istanza di ListBox.ObjectCollection contenente una matrice di oggetti . |
| ListBox.ObjectCollection(ListBox) |
Inizializza una nuova istanza di ListBox.ObjectCollection. |
Proprietà
| Nome | Descrizione |
|---|---|
| Count |
Ottiene il numero di elementi nell'insieme. |
| IsReadOnly |
Ottiene un valore che indica se l'insieme è di sola lettura. |
| Item[Int32] |
Ottiene o imposta l'elemento in corrispondenza dell'indice specificato all'interno dell'insieme. |
Metodi
| Nome | Descrizione |
|---|---|
| Add(Object) |
Aggiunge un elemento all'elenco di elementi per un oggetto ListBox. |
| AddRange(ListBox+ObjectCollection) |
Aggiunge gli elementi di un oggetto esistente ListBox.ObjectCollection all'elenco di elementi in un oggetto ListBox. |
| AddRange(Object[]) |
Aggiunge una matrice di elementi all'elenco di elementi per un oggetto ListBox. |
| Clear() |
Rimuove tutti gli elementi dalla raccolta. |
| Contains(Object) |
Determina se l'elemento specificato si trova all'interno dell'insieme. |
| CopyTo(Object[], Int32) |
Copia l'intera raccolta in una matrice esistente di oggetti in una posizione specificata all'interno della matrice. |
| Equals(Object) |
Determina se l'oggetto specificato è uguale all'oggetto corrente. (Ereditato da Object) |
| GetEnumerator() |
Restituisce un enumeratore da utilizzare per scorrere la raccolta di elementi. |
| GetHashCode() |
Funge da funzione hash predefinita. (Ereditato da Object) |
| GetType() |
Ottiene il Type dell'istanza corrente. (Ereditato da Object) |
| IndexOf(Object) |
Restituisce l'indice all'interno dell'insieme dell'elemento specificato. |
| Insert(Int32, Object) |
Inserisce un elemento nella casella di riepilogo in corrispondenza dell'indice specificato. |
| MemberwiseClone() |
Crea una copia superficiale del Objectcorrente. (Ereditato da Object) |
| Remove(Object) |
Rimuove l'oggetto specificato dall'insieme. |
| RemoveAt(Int32) |
Rimuove l'elemento in corrispondenza dell'indice specificato all'interno dell'insieme. |
| ToString() |
Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object) |
Implementazioni dell'interfaccia esplicita
| Nome | Descrizione |
|---|---|
| ICollection.CopyTo(Array, Int32) |
Questa API supporta l'infrastruttura del prodotto e non è previsto che venga usata direttamente dal codice. Copia gli elementi della raccolta in una matrice, a partire da un indice di matrice specifico. |
| ICollection.IsSynchronized |
Per una descrizione di questo membro, vedere IsSynchronized. |
| ICollection.SyncRoot |
Per una descrizione di questo membro, vedere SyncRoot. |
| IList.Add(Object) |
Questa API supporta l'infrastruttura del prodotto e non è previsto che venga usata direttamente dal codice. Aggiunge un oggetto alla ListBox classe . |
| IList.Contains(Object) |
Determina se contiene IList un valore specifico. |
| IList.IndexOf(Object) |
Determina l'indice di un elemento specifico nell'oggetto IList. |
| IList.Insert(Int32, Object) |
Inserisce un elemento nell'oggetto IList in corrispondenza dell'indice specificato. |
| IList.IsFixedSize |
Per una descrizione di questo membro, vedere IsFixedSize. |
| IList.Item[Int32] |
Ottiene o imposta l'elemento in corrispondenza dell'indice specificato. |
| IList.Remove(Object) |
Rimuove la prima occorrenza di un oggetto specifico da IList. |
Metodi di estensione
| Nome | Descrizione |
|---|---|
| AsParallel(IEnumerable) |
Abilita la parallelizzazione di una query. |
| AsQueryable(IEnumerable) |
Converte un IEnumerable in un IQueryable. |
| Cast<TResult>(IEnumerable) |
Esegue il cast degli elementi di un IEnumerable al tipo specificato. |
| OfType<TResult>(IEnumerable) |
Filtra gli elementi di un IEnumerable in base a un tipo specificato. |