ListBox.ObjectCollection Sınıf
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
içindeki ListBoxöğe koleksiyonunu temsil eder.
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
- Devralma
-
ListBox.ObjectCollection
- Türetilmiş
- Öznitelikler
- Uygulamalar
Örnekler
Aşağıdaki kod örneği, özelliğini OwnerDrawVariable
değerine ayarlayarak DrawMode ve ve MeasureItem olaylarını işleyerek DrawItem sahip tarafından çizilmiş ListBox bir örneği gösterir. Ayrıca ve ScrollAlwaysVisible özelliklerini ayarlamayı BorderStyle ve yöntemini kullanmayı AddRange gösterir.
Bu örneği çalıştırmak için ad alanını ve ad alanını içeri aktaran System.Drawing boş bir forma yapıştırın System.Windows.Forms . Formun oluşturucusundan veya Load
yönteminden çağrısıInitializeOwnerDrawnListBox
.
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
Açıklamalar
ListBox.ObjectCollection sınıfı içinde ListBoxgörüntülenen öğeleri depolar. sınıfı içinde tanımlanan ve bu koleksiyon içinde ListBox hangi öğelerin seçildiğini belirlemenizi sağlayan iki koleksiyon daha vardır. ListBox.SelectedObjectCollection sınıfı içinde hangi öğelerin seçildiğini ListBox.ObjectCollectionbelirlemek için özellikler ve yöntemler sağlarkenListBox.SelectedIndexCollection, sınıfı içindeki ListBox.ObjectCollection hangi dizinlerin seçildiğini belirlemenize olanak tanır.
Koleksiyona öğe eklemenin çeşitli yolları vardır. yöntemi, Add koleksiyona tek bir nesne ekleme olanağı sağlar. Koleksiyona bir dizi nesne eklemek için bir öğe dizisi oluşturur ve bunu yöntemine AddRange atarsınız. Koleksiyon içinde belirli bir konuma nesne eklemek istiyorsanız yöntemini kullanabilirsiniz Insert . Öğeleri kaldırmak için, öğenin koleksiyon içinde nerede bulunduğunu biliyorsanız yöntemini veya RemoveAt yöntemini kullanabilirsinizRemove. yöntemi, Clear tek seferde tek bir öğeyi kaldırmak için yöntemini kullanmak Remove yerine koleksiyondaki tüm öğeleri kaldırmanızı sağlar.
Ayrıca özelliğini kullanarak DataSource öğelerini ListBox de işleyebilirsiniz. bir öğesine öğe ListBoxeklemek için özelliğini kullanırsanızDataSource, özelliğini kullanarak Items içindeki ListBox öğeleri görüntüleyebilirsiniz, ancak öğesinin yöntemlerini ListBox.ObjectCollectionkullanarak listeye öğe ekleyemez veya listeden öğe kaldıramazsınız.
öğeleri ekleme ve kaldırma yöntemlerine ve özelliklerine ek olarak, ListBox.ObjectCollection koleksiyondaki öğeleri bulmak için yöntemler de sağlar. Contains yöntemi, bir nesnenin koleksiyonun üyesi olup olmadığını belirlemenizi sağlar. Öğenin koleksiyon içinde bulunduğunu bildiğinizde, öğenin koleksiyon içinde nerede bulunduğunu belirlemek için yöntemini kullanabilirsiniz IndexOf .
Oluşturucular
ListBox.ObjectCollection(ListBox) |
öğesinin yeni bir örneğini ListBox.ObjectCollectionbaşlatır. |
ListBox.ObjectCollection(ListBox, ListBox+ObjectCollection) |
Başka ListBox.ObjectCollectionbir öğesini temel alarak yeni bir örneğini ListBox.ObjectCollection başlatır. |
ListBox.ObjectCollection(ListBox, Object[]) |
Bir nesne dizisi içeren yeni bir örneğini ListBox.ObjectCollection başlatır. |
Özellikler
Count |
Topluluktaki öğe sayısını alır. |
IsReadOnly |
Topluluğun salt okunur olup olmadığını gösteren bir değer alır. |
Item[Int32] |
Öğeyi koleksiyon içinde belirtilen dizinde alır veya ayarlar. |
Yöntemler
Add(Object) |
Öğeyi bir öğe için öğe ListBoxlistesine ekler. |
AddRange(ListBox+ObjectCollection) |
Var olan ListBox.ObjectCollection bir öğenin öğelerini içindeki öğeler ListBoxlistesine ekler. |
AddRange(Object[]) |
öğe listesine bir öğe ListBoxdizisi ekler. |
Clear() |
Tüm öğeleri koleksiyondan kaldırır. |
Contains(Object) |
Belirtilen öğenin koleksiyon içinde bulunup bulunmadığını belirler. |
CopyTo(Object[], Int32) |
Koleksiyonun tamamını, dizi içinde belirtilen bir konumda bulunan mevcut bir nesne dizisine kopyalar. |
Equals(Object) |
Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler. (Devralındığı yer: Object) |
GetEnumerator() |
Öğe koleksiyonunda yineleme yapmak için kullanılacak bir numaralandırıcı döndürür. |
GetHashCode() |
Varsayılan karma işlevi işlevi görür. (Devralındığı yer: Object) |
GetType() |
Type Geçerli örneğini alır. (Devralındığı yer: Object) |
IndexOf(Object) |
Belirtilen öğenin koleksiyonundaki dizini döndürür. |
Insert(Int32, Object) |
Belirtilen dizindeki liste kutusuna bir öğe ekler. |
MemberwiseClone() |
Geçerli Objectöğesinin sığ bir kopyasını oluşturur. (Devralındığı yer: Object) |
Remove(Object) |
Belirtilen nesneyi koleksiyondan kaldırır. |
RemoveAt(Int32) |
Koleksiyon içinde belirtilen dizindeki öğeyi kaldırır. |
ToString() |
Geçerli nesneyi temsil eden dizeyi döndürür. (Devralındığı yer: Object) |
Belirtik Arabirim Kullanımları
ICollection.CopyTo(Array, Int32) |
Bu API, ürün altyapısını destekler ve doğrudan kodunuzdan kullanıma yönelik değildir. Koleksiyonun öğelerini belirli bir dizi dizininden başlayarak bir diziye kopyalar. |
ICollection.IsSynchronized |
Bu üyenin açıklaması için bkz IsSynchronized. . |
ICollection.SyncRoot |
Bu üyenin açıklaması için bkz SyncRoot. . |
IList.Add(Object) |
Bu API, ürün altyapısını destekler ve doğrudan kodunuzdan kullanıma yönelik değildir. sınıfına ListBox bir nesne ekler. |
IList.Contains(Object) |
öğesinin IList belirli bir değer içerip içermediğini belirler. |
IList.IndexOf(Object) |
içindeki belirli bir öğenin dizinini IListbelirler. |
IList.Insert(Int32, Object) |
Belirtilen dizinde öğesine IList bir öğe ekler. |
IList.IsFixedSize |
Bu üyenin açıklaması için bkz IsFixedSize. . |
IList.Item[Int32] |
Belirtilen dizindeki öğeyi alır veya ayarlar. |
IList.Remove(Object) |
belirli bir nesnenin ilk oluşumunu öğesinden IListkaldırır. |
Uzantı Metotları
Cast<TResult>(IEnumerable) |
öğesinin IEnumerable öğelerini belirtilen türe atar. |
OfType<TResult>(IEnumerable) |
Öğesinin IEnumerable öğelerini belirtilen türe göre filtreler. |
AsParallel(IEnumerable) |
Sorgunun paralelleştirilmesini etkinleştirir. |
AsQueryable(IEnumerable) |
bir IEnumerable öğesini öğesine IQueryabledönüştürür. |