ListBox.ObjectCollection Classe

Definizione

Rappresenta la raccolta di elementi in 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
Ereditarietà
ListBox.ObjectCollection
Derivato
Attributi
Implementazioni

Esempi

Nell'esempio di codice riportato di seguito viene illustrato ListBox un oggetto creato DrawMode dal proprietario impostando la proprietà OwnerDrawVariable sul DrawItem valore MeasureItem e gestendo gli eventi e.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. Viene inoltre illustrata l' BorderStyle impostazione ScrollAlwaysVisible delle proprietà e e AddRange l'utilizzo del metodo.It also demonstrates setting the BorderStyle and ScrollAlwaysVisible properties and using the AddRange method.

Per eseguire questo esempio, incollarlo in un modulo vuoto che importa lo System.Drawing spazio dei nomi System.Windows.Forms e lo spazio dei nomi.To run this example, paste it into an empty form that imports the System.Drawing namespace and the System.Windows.Forms namespace. Chiamare InitializeOwnerDrawnListBox dal costruttore o Load dal metodo del form.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

Commenti

La ListBox.ObjectCollection classe archivia gli elementi visualizzati nell'oggetto ListBox.The ListBox.ObjectCollection class stores the items displayed in the ListBox. All'interno della ListBox classe sono definite altre due raccolte che consentono di determinare quali elementi sono selezionati all'interno di questa raccolta.There are two other collections defined within the ListBox class that enable you to determine what items are selected within this collection. La ListBox.SelectedObjectCollection classe fornisce proprietà e metodi per determinare quali elementi sono selezionati ListBox.ObjectCollectionall'interno di, mentre ListBox.SelectedIndexCollection la classe consente di determinare quali indici nell' ListBox.ObjectCollection oggetto sono selezionati.The 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.

Sono disponibili diversi modi per aggiungere elementi alla raccolta.There are a number of ways to add items to the collection. Il Add metodo consente di aggiungere un singolo oggetto alla raccolta.The Add method provides the ability to add a single object to the collection. Per aggiungere un numero di oggetti alla raccolta, è necessario creare una matrice di elementi e assegnarla al AddRange metodo.To add a number of objects to the collection, you create an array of items and assign it to the AddRange method. Se si desidera inserire un oggetto in una posizione specifica all'interno della raccolta, è possibile utilizzare il Insert metodo.If you want to insert an object at a specific location within the collection, you can use the Insert method. Per rimuovere elementi, è possibile usare il Remove metodo RemoveAt o il metodo se si sa dove si trova l'elemento all'interno della raccolta.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. Il Clear metodo consente di rimuovere tutti gli elementi dalla raccolta anziché utilizzare il Remove metodo per rimuovere un singolo elemento alla volta.The 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.

È inoltre possibile modificare gli elementi di un ListBox oggetto utilizzando la DataSource proprietà.You can also manipulate the items of a ListBox by using the DataSource property. Se si utilizza la DataSource proprietà per aggiungere elementi a un ListBoxoggetto, è possibile ListBox visualizzare gli elementi in utilizzando la Items proprietà, ma non è possibile aggiungere ListBox.ObjectCollectiono rimuovere elementi dall'elenco utilizzando i metodi di.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.

Oltre ai metodi e alle proprietà per l'aggiunta e la ListBox.ObjectCollection rimozione di elementi, fornisce anche metodi per trovare elementi all'interno della raccolta.In addition to methods and properties for adding and removing items, the ListBox.ObjectCollection also provides methods to find items within the collection. Il Contains metodo consente di determinare se un oggetto è un membro della raccolta.The Contains method enables you to determine whether an object is a member of the collection. Quando si è certi che l'elemento si trova all'interno della raccolta, è possibile IndexOf usare il metodo per determinare la posizione dell'elemento all'interno della raccolta.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.

Costruttori

ListBox.ObjectCollection(ListBox)

Inizializza una nuova istanza di ListBox.ObjectCollection.Initializes a new instance of ListBox.ObjectCollection.

ListBox.ObjectCollection(ListBox, ListBox+ObjectCollection)

Inizializza una nuova istanza di ListBox.ObjectCollection sulla base di un altro oggetto ListBox.ObjectCollection.Initializes a new instance of ListBox.ObjectCollection based on another ListBox.ObjectCollection.

ListBox.ObjectCollection(ListBox, Object[])

Inizializza una nuova istanza di ListBox.ObjectCollection contenente una matrice di oggetti.Initializes a new instance of ListBox.ObjectCollection containing an array of objects.

Proprietà

Count

Ottiene il numero di elementi nella raccolta.Gets the number of items in the collection.

IsReadOnly

Ottiene un valore che indica se la raccolta è di sola lettura.Gets a value indicating whether the collection is read-only.

Item[Int32]

Ottiene o imposta l'elemento presente in corrispondenza dell'indice specificato all'interno dell'insieme.Gets or sets the item at the specified index within the collection.

Metodi

Add(Object)

Aggiunge un elemento all'elenco di elementi per un controllo ListBox.Adds an item to the list of items for a ListBox.

AddRange(ListBox+ObjectCollection)

Aggiunge gli elementi di un insieme ListBox.ObjectCollection esistente all'elenco di elementi di un controllo ListBox.Adds the items of an existing ListBox.ObjectCollection to the list of items in a ListBox.

AddRange(Object[])

Aggiunge una matrice di elementi all'elenco di elementi per un oggetto ListBox.Adds an array of items to the list of items for a ListBox.

Clear()

Rimuove tutti gli elementi dalla raccolta.Removes all items from the collection.

Contains(Object)

Determina se l'elemento specificato è contenuto nell'insieme.Determines whether the specified item is located within the collection.

CopyTo(Object[], Int32)

Copia l'intero insieme in una matrice di oggetti esistente in corrispondenza della posizione specificata all'interno della matrice.Copies the entire collection into an existing array of objects at a specified location within the array.

Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.Determines whether the specified object is equal to the current object.

(Ereditato da Object)
GetEnumerator()

Restituisce un enumeratore da utilizzare per scorrere l'insieme degli elementi.Returns an enumerator to use to iterate through the item collection.

GetHashCode()

Funge da funzione hash predefinita.Serves as the default hash function.

(Ereditato da Object)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.Gets the Type of the current instance.

(Ereditato da Object)
IndexOf(Object)

Restituisce l'indice all'interno dell'insieme dell'elemento specificato.Returns the index within the collection of the specified item.

Insert(Int32, Object)

Inserisce un elemento nell'elenco a discesa in corrispondenza dell'indice specificato.Inserts an item into the list box at the specified index.

MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.Creates a shallow copy of the current Object.

(Ereditato da Object)
Remove(Object)

Rimuove l'oggetto specificato dalla raccolta.Removes the specified object from the collection.

RemoveAt(Int32)

Rimuove dall'insieme l'elemento presente in corrispondenza dell'indice specificato.Removes the item at the specified index within the collection.

ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.Returns a string that represents the current object.

(Ereditato da Object)

Implementazioni dell'interfaccia esplicita

ICollection.CopyTo(Array, Int32)

Copia gli elementi della raccolta in una matrice, a partire da un indice della matrice specifico.Copies the elements of the collection to an array, starting at a particular array index.

ICollection.IsSynchronized

Per una descrizione di questo membro, vedere IsSynchronized.For a description of this member, see IsSynchronized.

ICollection.SyncRoot

Per una descrizione di questo membro, vedere SyncRoot.For a description of this member, see SyncRoot.

IList.Add(Object)

Aggiunge un oggetto alla classe ListBox.Adds an object to the ListBox class.

IList.IsFixedSize

Per una descrizione di questo membro, vedere IsFixedSize.For a description of this member, see IsFixedSize.

Metodi di estensione

Cast<TResult>(IEnumerable)

Esegue il cast degli elementi di un oggetto IEnumerable nel tipo specificato.Casts the elements of an IEnumerable to the specified type.

OfType<TResult>(IEnumerable)

Filtra gli elementi di un oggetto IEnumerable in base a un tipo specificato.Filters the elements of an IEnumerable based on a specified type.

AsParallel(IEnumerable)

Consente la parallelizzazione di una query.Enables parallelization of a query.

AsQueryable(IEnumerable)

Converte un oggetto IEnumerable in un oggetto IQueryable.Converts an IEnumerable to an IQueryable.

Si applica a

Vedi anche