ListBox.ObjectCollection Kelas

Definisi

Mewakili kumpulan item dalam 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
Warisan
ListBox.ObjectCollection
Turunan
Atribut
Penerapan

Contoh

Contoh kode berikut menunjukkan pemilik yang digambar ListBox dengan mengatur DrawMode properti ke OwnerDrawVariable nilai dan menangani DrawItem peristiwa dan MeasureItem . Ini juga menunjukkan pengaturan BorderStyle properti dan ScrollAlwaysVisible dan menggunakan AddRange metode .

Untuk menjalankan contoh ini, tempelkan ke dalam formulir kosong yang mengimpor System.Drawing namespace dan System.Windows.Forms namespace. Panggil InitializeOwnerDrawnListBox dari konstruktor atau Load metode formulir.

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

Keterangan

Kelas ListBox.ObjectCollection menyimpan item yang ditampilkan di ListBox. Ada dua koleksi lain yang ditentukan dalam ListBox kelas yang memungkinkan Anda menentukan item apa yang dipilih dalam koleksi ini. Kelas ListBox.SelectedObjectCollection menyediakan properti dan metode untuk menentukan item apa yang dipilih dalam ListBox.ObjectCollection, sementara ListBox.SelectedIndexCollection kelas memungkinkan Anda menentukan indeks apa dalam ListBox.ObjectCollection yang dipilih.

Ada sejumlah cara untuk menambahkan item ke koleksi. Metode ini Add menyediakan kemampuan untuk menambahkan satu objek ke koleksi. Untuk menambahkan sejumlah objek ke koleksi, Anda membuat array item dan menetapkannya ke AddRange metode . Jika Anda ingin menyisipkan objek di lokasi tertentu dalam koleksi, Anda dapat menggunakan metode .Insert Untuk menghapus item, Anda dapat menggunakan Remove metode atau RemoveAt metode jika Anda tahu di mana item berada dalam koleksi. Metode ini Clear memungkinkan Anda untuk menghapus semua item dari koleksi alih-alih menggunakan Remove metode untuk menghapus satu item pada satu waktu.

Anda juga dapat memanipulasi item dari a ListBox dengan menggunakan DataSource properti . Jika Anda menggunakan DataSource properti untuk menambahkan item ke ListBox, Anda dapat melihat item dalam ListBox menggunakan Items properti tetapi Anda tidak dapat menambahkan atau menghapus item dari daftar menggunakan metode ListBox.ObjectCollection.

Selain metode dan properti untuk menambahkan dan menghapus item, ListBox.ObjectCollection juga menyediakan metode untuk menemukan item dalam koleksi. Metode ini Contains memungkinkan Anda menentukan apakah objek adalah anggota koleksi. Setelah Anda tahu bahwa item berada dalam koleksi, Anda dapat menggunakan IndexOf metode untuk menentukan di mana item berada dalam koleksi.

Konstruktor

ListBox.ObjectCollection(ListBox)

Menginisialisasi instans ListBox.ObjectCollectionbaru .

ListBox.ObjectCollection(ListBox, ListBox+ObjectCollection)

Menginisialisasi instans baru berdasarkan instans ListBox.ObjectCollection lain ListBox.ObjectCollection.

ListBox.ObjectCollection(ListBox, Object[])

Menginisialisasi instans ListBox.ObjectCollection baru yang berisi array objek.

Properti

Count

Mendapatkan jumlah item dalam koleksi.

IsReadOnly

Mendapatkan nilai yang menunjukkan apakah koleksi bersifat baca-saja.

Item[Int32]

Mendapatkan atau mengatur item pada indeks yang ditentukan dalam koleksi.

Metode

Add(Object)

Menambahkan item ke daftar item untuk .ListBox

AddRange(ListBox+ObjectCollection)

Menambahkan item dari item yang ada ListBox.ObjectCollection ke daftar item dalam ListBox.

AddRange(Object[])

Menambahkan array item ke daftar item untuk ListBox.

Clear()

Menghapus semua item dari koleksi.

Contains(Object)

Menentukan apakah item yang ditentukan terletak di dalam koleksi.

CopyTo(Object[], Int32)

Menyalin seluruh koleksi ke dalam array objek yang ada di lokasi tertentu dalam array.

Equals(Object)

Menentukan apakah objek yang ditentukan sama dengan objek saat ini.

(Diperoleh dari Object)
GetEnumerator()

Mengembalikan enumerator yang akan digunakan untuk melakukan iterasi melalui kumpulan item.

GetHashCode()

Berfungsi sebagai fungsi hash default.

(Diperoleh dari Object)
GetType()

Mendapatkan instans Type saat ini.

(Diperoleh dari Object)
IndexOf(Object)

Mengembalikan indeks dalam kumpulan item yang ditentukan.

Insert(Int32, Object)

Sisipkan item ke dalam kotak daftar pada indeks yang ditentukan.

MemberwiseClone()

Membuat salinan dangkal dari yang saat ini Object.

(Diperoleh dari Object)
Remove(Object)

Menghapus objek yang ditentukan dari koleksi.

RemoveAt(Int32)

Menghapus item pada indeks yang ditentukan dalam koleksi.

ToString()

Mengembalikan string yang mewakili objek saat ini.

(Diperoleh dari Object)

Implementasi Antarmuka Eksplisit

ICollection.CopyTo(Array, Int32)

API ini mendukung infrastruktur produk dan tidak dimaksudkan untuk digunakan langsung dari kode Anda.

Menyalin elemen koleksi ke array, dimulai dari indeks array tertentu.

ICollection.IsSynchronized

Untuk deskripsi anggota ini, lihat IsSynchronized.

ICollection.SyncRoot

Untuk deskripsi anggota ini, lihat SyncRoot.

IList.Add(Object)

API ini mendukung infrastruktur produk dan tidak dimaksudkan untuk digunakan langsung dari kode Anda.

Menambahkan objek ke ListBox kelas .

IList.Contains(Object)

Menentukan apakah IList berisi nilai tertentu.

IList.IndexOf(Object)

Menentukan indeks item tertentu di IList.

IList.Insert(Int32, Object)

Sisipkan item ke pada IList indeks yang ditentukan.

IList.IsFixedSize

Untuk deskripsi anggota ini, lihat IsFixedSize.

IList.Item[Int32]

Mendapatkan atau mengatur elemen pada indeks yang ditentukan.

IList.Remove(Object)

Menghapus kemunculan pertama objek tertentu dari IList.

Metode Ekstensi

Cast<TResult>(IEnumerable)

Mentransmisikan elemen dari IEnumerable ke jenis yang ditentukan.

OfType<TResult>(IEnumerable)

Memfilter elemen berdasarkan IEnumerable jenis tertentu.

AsParallel(IEnumerable)

Mengaktifkan paralelisasi kueri.

AsQueryable(IEnumerable)

Mengonversi menjadi IEnumerableIQueryable.

Berlaku untuk

Lihat juga