Поделиться через


ListBox.ObjectCollection.AddRange Метод

Определение

Добавляет группу элементов в список элементов для ListBoxэлемента.

Перегрузки

Имя Описание
AddRange(Object[])

Добавляет массив элементов в список элементов для элемента ListBox.

AddRange(ListBox+ObjectCollection)

Добавляет элементы существующего ListBox.ObjectCollection в список элементов в объекте ListBox.

AddRange(Object[])

Исходный код:
ListBox.ObjectCollection.cs
Исходный код:
ListBox.ObjectCollection.cs
Исходный код:
ListBox.ObjectCollection.cs
Исходный код:
ListBox.ObjectCollection.cs
Исходный код:
ListBox.ObjectCollection.cs

Добавляет массив элементов в список элементов для элемента 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())

Параметры

items
Object[]

Массив объектов, добавляемых в список.

Исключения

.NET 5 и более поздних версий: itemsnull

Примеры

В следующем примере кода демонстрируется нарисованное ListBox владельцем свойство, задав DrawMode для свойства OwnerDrawVariable значение и обрабатывая DrawItem события.MeasureItem Он также демонстрирует настройку BorderStyle и ScrollAlwaysVisible свойства и использование AddRange метода.

Чтобы запустить этот пример, вставьте его в пустую форму, которая импортирует System.Drawing пространство имен и System.Windows.Forms пространство имен. Вызов InitializeOwnerDrawnListBox из конструктора или Load метода формы.

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

Комментарии

Sorted Если для свойства ListBox задано trueзначение, элементы вставляются в список в алфавитном порядке. В противном случае элементы вставляются в том порядке, в который они происходят в массиве. Этот метод обычно передает массив String объектов, но массив любого типа объекта можно передать этому методу. При добавлении объекта в коллекцию ListBox сначала проверяет, имеет ли DisplayMember свойство ListControl класса имя члена из объекта, указанного для ссылки при получении текста элемента. DisplayMember Если свойство не имеет указанного элемента, ListBox то вызывает ToString метод объекта для получения текста, отображаемого в списке. При использовании этого метода для добавления элементов в ListBoxнее не требуется вызывать BeginUpdate методы и EndUpdate методы для оптимизации производительности. При добавлении элементов в ListBoxэлемент более эффективно отсортировать элементы, а затем добавить новые элементы. Этот метод можно использовать для добавления группы элементов в список или повторного использования элементов, хранящихся в другом ListBox.

См. также раздел

Применяется к

AddRange(ListBox+ObjectCollection)

Исходный код:
ListBox.ObjectCollection.cs
Исходный код:
ListBox.ObjectCollection.cs
Исходный код:
ListBox.ObjectCollection.cs
Исходный код:
ListBox.ObjectCollection.cs
Исходный код:
ListBox.ObjectCollection.cs

Добавляет элементы существующего ListBox.ObjectCollection в список элементов в объекте 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)

Параметры

value
ListBox.ObjectCollection

Для ListBox.ObjectCollection загрузки в эту коллекцию.

Исключения

.NET 5 и более поздних версий: valuenull

Комментарии

Sorted Если для свойства ListBox задано trueзначение, элементы вставляются в список в алфавитном порядке. В противном случае элементы вставляются в том порядке, в который они происходят в массиве. Этот метод обычно передает массив String объектов, но массив любого типа объекта можно передать этому методу. При добавлении объекта в коллекцию ListBox сначала проверяет, имеет ли DisplayMember свойство ListControl класса имя члена из объекта, указанного для ссылки при получении текста элемента. DisplayMember Если свойство не имеет указанного элемента, ListBox то вызывает ToString метод объекта для получения текста, отображаемого в списке.

При использовании этого метода для добавления элементов в ListBoxнее не требуется вызывать BeginUpdate методы и EndUpdate методы для оптимизации производительности. При добавлении элементов в ListBoxэлемент более эффективно отсортировать элементы, а затем добавить новые элементы. Этот метод можно использовать для повторного использования элементов, хранящихся в другом ListBox.

См. также раздел

Применяется к