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 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 eMeasureItem.ListBox Illustra anche l'impostazione delle BorderStyle proprietà e ScrollAlwaysVisible e l'uso del AddRange metodo .
Per eseguire questo esempio, incollarlo in una maschera vuota 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 gli indici all'interno dell'oggetto ListBox.ObjectCollection selezionato.
Esistono diversi modi per aggiungere elementi alla raccolta. Il Add metodo offre la possibilità di aggiungere un singolo oggetto all'insieme. Per aggiungere un numero di oggetti all'insieme AddRange , creare una matrice di elementi e assegnarla al metodo. Se si vuole inserire un oggetto in una posizione specifica all'interno dell'insieme, è possibile usare il Insert metodo . Per rimuovere gli elementi, è possibile usare il metodo o il RemoveRemoveAt metodo se si conosce dove si trova l'elemento all'interno della raccolta. Il Clear metodo consente di rimuovere tutti gli elementi dalla raccolta anziché usare il Remove metodo per rimuovere un singolo elemento alla volta.
È anche possibile modificare gli elementi di un ListBox usando la DataSource proprietà . Se si usa la DataSource proprietà per aggiungere elementi a un ListBoxoggetto , è possibile visualizzare gli elementi nell'uso ListBox della Items proprietà, ma non è possibile aggiungere o rimuovere elementi dall'elenco usando i metodi di ListBox.ObjectCollection.
Oltre ai metodi e alle proprietà per l'aggiunta e la rimozione di elementi, ListBox.ObjectCollection fornisce anche metodi per trovare elementi all'interno della raccolta. Il Contains metodo consente di determinare se un oggetto è un membro dell'insieme. Dopo aver appreso che l'elemento si trova all'interno della raccolta, è possibile usare il IndexOf metodo per determinare dove si trova l'elemento all'interno della raccolta.
Costruttori
ListBox.ObjectCollection(ListBox) |
Inizializza una nuova istanza di ListBox.ObjectCollection. |
ListBox.ObjectCollection(ListBox, ListBox+ObjectCollection) |
Inizializza una nuova istanza di ListBox.ObjectCollection sulla base di un altro oggetto ListBox.ObjectCollection. |
ListBox.ObjectCollection(ListBox, Object[]) |
Inizializza una nuova istanza di ListBox.ObjectCollection contenente una matrice di oggetti. |
Proprietà
Count |
Ottiene il numero di elementi nella raccolta. |
IsReadOnly |
Ottiene un valore che indica se la raccolta è di sola lettura. |
Item[Int32] |
Ottiene o imposta l'elemento presente in corrispondenza dell'indice specificato all'interno dell'insieme. |
Metodi
Add(Object) |
Aggiunge un elemento all'elenco di elementi per un controllo ListBox. |
AddRange(ListBox+ObjectCollection) |
Aggiunge gli elementi di un insieme ListBox.ObjectCollection esistente all'elenco di elementi di un controllo 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 è contenuto nell'insieme. |
CopyTo(Object[], Int32) |
Copia l'intero insieme in una matrice di oggetti esistente in corrispondenza della 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 l'insieme degli elementi. |
GetHashCode() |
Funge da funzione hash predefinita. (Ereditato da Object) |
GetType() |
Ottiene l'oggetto 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 nell'elenco a discesa in corrispondenza dell'indice specificato. |
MemberwiseClone() |
Crea una copia superficiale dell'oggetto Object corrente. (Ereditato da Object) |
Remove(Object) |
Rimuove l'oggetto specificato dalla raccolta. |
RemoveAt(Int32) |
Rimuove dall'insieme l'elemento presente in corrispondenza dell'indice specificato. |
ToString() |
Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object) |
Implementazioni dell'interfaccia esplicita
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 della 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 classe ListBox. |
IList.Contains(Object) |
Stabilisce se IList contiene un valore specifico. |
IList.IndexOf(Object) |
Determina l'indice di un elemento specifico in IList. |
IList.Insert(Int32, Object) |
Inserisce un elemento in 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
Cast<TResult>(IEnumerable) |
Esegue il cast degli elementi di un oggetto IEnumerable nel tipo specificato. |
OfType<TResult>(IEnumerable) |
Filtra gli elementi di un oggetto IEnumerable in base a un tipo specificato. |
AsParallel(IEnumerable) |
Consente la parallelizzazione di una query. |
AsQueryable(IEnumerable) |
Converte un oggetto IEnumerable in un oggetto IQueryable. |