ListBox.ObjectCollection Klas

Definitie

Vertegenwoordigt de verzameling items in een 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
Overname
ListBox.ObjectCollection
Afgeleid
Kenmerken
Implementeringen

Voorbeelden

In het volgende codevoorbeeld ziet u een eigenaar die is getekend ListBox door de DrawMode eigenschap in te stellen op de OwnerDrawVariable waarde en de verwerking van de DrawItem en MeasureItem gebeurtenissen. Ook ziet u hoe u de BorderStyle en eigenschappen instelt ScrollAlwaysVisible en de AddRange methode gebruikt.

Als u dit voorbeeld wilt uitvoeren, plakt u deze in een leeg formulier waarmee de naamruimte System.Drawing en de naamruimte System.Windows.Forms worden geïmporteerd. Aanroepen InitializeOwnerDrawnListBox vanuit de constructor of Load methode van het formulier.

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

Opmerkingen

De ListBox.ObjectCollection klasse slaat de items op die worden weergegeven in de ListBox. Er zijn twee andere verzamelingen gedefinieerd in de ListBox klasse waarmee u kunt bepalen welke items in deze verzameling zijn geselecteerd. De ListBox.SelectedObjectCollection klasse bevat eigenschappen en methoden voor het bepalen van de items die zijn geselecteerd binnen de ListBox.ObjectCollectionklasse, terwijl u met de ListBox.SelectedIndexCollection klasse kunt bepalen welke indexen binnen de ListBox.ObjectCollection geselecteerde items zijn geselecteerd.

Er zijn verschillende manieren om items aan de verzameling toe te voegen. De Add methode biedt de mogelijkheid om één object toe te voegen aan de verzameling. Als u een aantal objecten aan de verzameling wilt toevoegen, maakt u een matrix met items en wijst u deze toe aan de AddRange methode. Als u een object op een specifieke locatie in de verzameling wilt invoegen, kunt u de Insert methode gebruiken. Als u items wilt verwijderen, kunt u de Remove methode of de RemoveAt methode gebruiken als u weet waar het item zich in de verzameling bevindt. Met Clear de methode kunt u alle items uit de verzameling verwijderen in plaats van de Remove methode te gebruiken om één item tegelijk te verwijderen.

U kunt ook de items van een ListBox bewerken met behulp van de DataSource eigenschap. Als u de DataSource eigenschap gebruikt om items aan een ListBoxtoe te voegen, kunt u de items in de ListBoxItems eigenschap weergeven, maar u kunt geen items toevoegen aan of verwijderen uit de lijst met behulp van de methoden van de ListBox.ObjectCollection.

Naast methoden en eigenschappen voor het toevoegen en verwijderen van items, biedt de ListBox.ObjectCollection functie ook methoden om items in de verzameling te vinden. Met de Contains methode kunt u bepalen of een object lid is van de verzameling. Zodra u weet dat het item zich in de verzameling bevindt, kunt u de IndexOf methode gebruiken om te bepalen waar het item zich in de verzameling bevindt.

Constructors

Name Description
ListBox.ObjectCollection(ListBox, ListBox+ObjectCollection)

Initialiseert een nieuw exemplaar van op basis van ListBox.ObjectCollection een andere ListBox.ObjectCollection.

ListBox.ObjectCollection(ListBox, Object[])

Initialiseert een nieuw exemplaar van het bevatten van ListBox.ObjectCollection een matrix met objecten.

ListBox.ObjectCollection(ListBox)

Initialiseert een nieuw exemplaar van ListBox.ObjectCollection.

Eigenschappen

Name Description
Count

Hiermee haalt u het aantal items in de verzameling op.

IsReadOnly

Hiermee wordt een waarde opgehaald die aangeeft of de verzameling het kenmerk Alleen-lezen heeft.

Item[Int32]

Hiermee haalt u het item op de opgegeven index in de verzameling op of stelt u het in.

Methoden

Name Description
Add(Object)

Voegt een item toe aan de lijst met items voor een ListBox.

AddRange(ListBox+ObjectCollection)

Hiermee worden de items van een bestaande ListBox.ObjectCollection toegevoegd aan de lijst met items in een ListBox.

AddRange(Object[])

Hiermee voegt u een matrix met items toe aan de lijst met items voor een ListBox.

Clear()

Hiermee verwijdert u alle items uit de verzameling.

Contains(Object)

Bepaalt of het opgegeven item zich in de verzameling bevindt.

CopyTo(Object[], Int32)

Hiermee kopieert u de hele verzameling naar een bestaande matrix met objecten op een opgegeven locatie in de matrix.

Equals(Object)

Bepaalt of het opgegeven object gelijk is aan het huidige object.

(Overgenomen van Object)
GetEnumerator()

Retourneert een enumerator die moet worden gebruikt om door de itemverzameling te doorlopen.

GetHashCode()

Fungeert als de standaardhashfunctie.

(Overgenomen van Object)
GetType()

Hiermee haalt u de Type huidige instantie op.

(Overgenomen van Object)
IndexOf(Object)

Retourneert de index binnen de verzameling van het opgegeven item.

Insert(Int32, Object)

Hiermee voegt u een item in de keuzelijst in de opgegeven index.

MemberwiseClone()

Hiermee maakt u een ondiepe kopie van de huidige Object.

(Overgenomen van Object)
Remove(Object)

Hiermee verwijdert u het opgegeven object uit de verzameling.

RemoveAt(Int32)

Hiermee verwijdert u het item in de opgegeven index in de verzameling.

ToString()

Retourneert een tekenreeks die het huidige object vertegenwoordigt.

(Overgenomen van Object)

Expliciete interface-implementaties

Name Description
ICollection.CopyTo(Array, Int32)

Deze API ondersteunt de productinfrastructuur en is niet bedoeld om rechtstreeks vanuit de code te gebruiken.

Kopieert de elementen van de verzameling naar een matrix, beginnend bij een bepaalde matrixindex.

ICollection.IsSynchronized

Zie voor een beschrijving van dit lid IsSynchronized.

ICollection.SyncRoot

Zie voor een beschrijving van dit lid SyncRoot.

IList.Add(Object)

Deze API ondersteunt de productinfrastructuur en is niet bedoeld om rechtstreeks vanuit de code te gebruiken.

Hiermee voegt u een object toe aan de ListBox klasse.

IList.IsFixedSize

Zie voor een beschrijving van dit lid IsFixedSize.

Extensiemethoden

Name Description
AsParallel(IEnumerable)

Hiermee schakelt u parallelle uitvoering van een query in.

AsQueryable(IEnumerable)

Converteert een IEnumerable naar een IQueryable.

Cast<TResult>(IEnumerable)

Cast de elementen van een IEnumerable naar het opgegeven type.

OfType<TResult>(IEnumerable)

Hiermee filtert u de elementen van een IEnumerable op basis van een opgegeven type.

Van toepassing op

Zie ook