ListBox.ObjectCollection.AddRange Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Dodaje grupę elementów do listy elementów dla elementu ListBox.
Przeciążenia
AddRange(Object[]) |
Dodaje tablicę elementów do listy elementów dla elementu ListBox. |
AddRange(ListBox+ObjectCollection) |
Dodaje elementy istniejącego ListBox.ObjectCollection elementu do listy elementów w obiekcie ListBox. |
AddRange(Object[])
- Źródło:
- ListBox.ObjectCollection.cs
- Źródło:
- ListBox.ObjectCollection.cs
- Źródło:
- ListBox.ObjectCollection.cs
Dodaje tablicę elementów do listy elementów dla elementu ListBox.
public:
void AddRange(cli::array <System::Object ^> ^ items);
public:
void AddRange(... cli::array <System::Object ^> ^ items);
public void AddRange (object[] items);
public void AddRange (params object[] items);
member this.AddRange : obj[] -> unit
Public Sub AddRange (items As Object())
Public Sub AddRange (ParamArray items As Object())
Parametry
- items
- Object[]
Tablica obiektów do dodania do listy.
Wyjątki
.NET 5 i nowsze: items
to null
.
Przykłady
Poniższy przykład kodu przedstawia rysowanie ListBox właściciela przez ustawienie DrawMode właściwości na OwnerDrawVariable
wartość i obsługę zdarzeń DrawItem i MeasureItem . Pokazuje również ustawianie BorderStyle właściwości i ScrollAlwaysVisible i przy użyciu AddRange metody .
Aby uruchomić ten przykład, wklej go do pustego formularza, który importuje System.Drawing przestrzeń nazw i System.Windows.Forms przestrzeń nazw. Wywołanie InitializeOwnerDrawnListBox
z konstruktora lub Load
metody formularza.
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
Uwagi
Sorted Jeśli właściwość ListBox jest ustawiona na true
, elementy są wstawiane do listy alfabetycznie. W przeciwnym razie elementy są wstawiane w kolejności, w której występują w tablicy. Ta metoda jest zwykle przekazywana do tablicy String obiektów, ale tablica dowolnego typu obiektu może zostać przekazana do tej metody. Po dodaniu obiektu do kolekcji pierwszy sprawdza, ListBox czy DisplayMember właściwość ListControl klasy ma nazwę elementu członkowskiego z obiektu określonego do odwołania podczas uzyskiwania tekstu elementu.
DisplayMember Jeśli właściwość nie ma określonego elementu członkowskiego, ListBox metoda obiektu wywołuje ToString metodę obiektu w celu uzyskania tekstu do wyświetlenia na liście. W przypadku używania tej metody do dodawania elementów do ListBoxklasy nie trzeba wywoływać BeginUpdate metod i EndUpdate w celu zoptymalizowania wydajności. Podczas dodawania elementów do elementu ListBoxjest wydajniejszy, aby najpierw sortować elementy, a następnie dodawać nowe elementy. Za pomocą tej metody można dodać grupę elementów do listy lub ponownie użyć elementów przechowywanych w innym ListBoxelemecie .
Zobacz też
Dotyczy
AddRange(ListBox+ObjectCollection)
- Źródło:
- ListBox.ObjectCollection.cs
- Źródło:
- ListBox.ObjectCollection.cs
- Źródło:
- ListBox.ObjectCollection.cs
Dodaje elementy istniejącego ListBox.ObjectCollection elementu do listy elementów w obiekcie ListBox.
public:
void AddRange(System::Windows::Forms::ListBox::ObjectCollection ^ value);
public void AddRange (System.Windows.Forms.ListBox.ObjectCollection value);
member this.AddRange : System.Windows.Forms.ListBox.ObjectCollection -> unit
Public Sub AddRange (value As ListBox.ObjectCollection)
Parametry
- value
- ListBox.ObjectCollection
Element do ListBox.ObjectCollection załadowania do tej kolekcji.
Wyjątki
.NET 5 i nowsze: value
to null
.
Uwagi
Sorted Jeśli właściwość ListBox jest ustawiona na true
, elementy są wstawiane do listy alfabetycznie. W przeciwnym razie elementy są wstawiane w kolejności, w której występują w tablicy. Ta metoda jest zwykle przekazywana do tablicy String obiektów, ale tablica dowolnego typu obiektu może zostać przekazana do tej metody. Po dodaniu obiektu do kolekcji pierwszy sprawdza, ListBox czy DisplayMember właściwość ListControl klasy ma nazwę elementu członkowskiego z obiektu określonego do odwołania podczas uzyskiwania tekstu elementu.
DisplayMember Jeśli właściwość nie ma określonego elementu członkowskiego, ListBox metoda obiektu wywołuje ToString metodę obiektu w celu uzyskania tekstu do wyświetlenia na liście.
W przypadku używania tej metody do dodawania elementów do ListBoxklasy nie trzeba wywoływać BeginUpdate metod i EndUpdate w celu zoptymalizowania wydajności. Podczas dodawania elementów do elementu ListBoxjest wydajniejszy, aby najpierw sortować elementy, a następnie dodawać nowe elementy. Tej metody można użyć do ponownego użycia elementów przechowywanych w innym ListBoxobiekcie .