ListBox.ObjectCollection.AddRange Method (Object[])

Adds an array of items to the list of items for a ListBox.

Namespace: System.Windows.Forms
Assembly: System.Windows.Forms (in system.windows.forms.dll)

public void AddRange (
	Object[] items
)
public void AddRange (
	Object[] items
)
public function AddRange (
	items : Object[]
)

Parameters

items

An array of objects to add to the list.

If the Sorted property of the ListBox is set to true, the items are inserted into the list alphabetically. Otherwise, the items are inserted in the order that they occur within the array. This method is typically passed an array of String objects, but an array of any type of object can be passed to this method. When an object is added to the collection, the ListBox first checks to see if the DisplayMember property of the ListControl class has the name of a member from the object specified to reference when obtaining the item text. If the DisplayMember property does not have a member specified, the ListBox then calls the ToString method of the object to obtain the text to display in the list. When using this method to add items to the ListBox, you do not need to call the BeginUpdate and EndUpdate methods to optimize performance. When adding items to a ListBox, it is more efficient to sort the items first and then add new items. You can use this method to add a group of items to the list or to reuse the items stored in a different ListBox.

The following code example demonstrates an owner-drawn ListBox by setting the DrawMode property to the OwnerDrawVariable value and handling the DrawItem and MeasureItem events. It also demonstrates setting the BorderStyle and ScrollAlwaysVisible properties and using the AddRange method.

To run this example, paste it into an empty form that imports the System.Drawing namespace and the System.Windows.Forms namespace. Call InitializeOwnerDrawnListBox from the form's constructor or Load method.

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;
    }

}


private System.Windows.Forms.ListBox listBox1;

private void InitializeOwnerDrawnListBox()
{
    this.listBox1 = new System.Windows.Forms.ListBox();
    // Set the location and size.
    listBox1.set_Location(new Point(20, 20));
    listBox1.set_Size(new Size(240, 240));
    // Populate the ListBox.ObjectCollection property 
    // with several strings, using the AddRange method.
    this.listBox1.get_Items().AddRange(new Object[] { 
        "System.Windows.Forms", "System.Drawing", 
        "System.Xml", "System.Net", "System.Runtime.Remoting", 
        "System.Web" });
    // Turn off the scrollbar.
    listBox1.set_ScrollAlwaysVisible(false);
    // Set the border style to a single, flat border.
    listBox1.set_BorderStyle(BorderStyle.FixedSingle);
    // Set the DrawMode property to the OwnerDrawVariable value. 
    // This means the MeasureItem and DrawItem events must be 
    // handled.
    listBox1.set_DrawMode(DrawMode.OwnerDrawVariable);
    listBox1.add_MeasureItem(new MeasureItemEventHandler(
        listBox1_MeasureItem));
    listBox1.add_DrawItem(new DrawItemEventHandler(listBox1_DrawItem));
    this.get_Controls().Add(this.listBox1);
} //InitializeOwnerDrawnListBox

// 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.get_State() & DrawItemState.Selected) 
        == DrawItemState.Selected) {
        e.get_Graphics().FillRectangle(Brushes.get_CornflowerBlue(), 
            e.get_Bounds());
    }
    else {
        // Otherwise, draw the rectangle filled in beige.
        e.get_Graphics().FillRectangle(Brushes.get_Beige(), 
            e.get_Bounds());
    }
    // Draw a rectangle in blue around each item.
    e.get_Graphics().DrawRectangle(Pens.get_Blue(), e.get_Bounds());
    // Draw the text in the item.
    e.get_Graphics().DrawString(listBox1.get_Items().get_Item(
        e.get_Index()).ToString(), this.get_Font(), 
        Brushes.get_Black(), e.get_Bounds().get_X(), 
        e.get_Bounds().get_Y());
    // Draw the focus rectangle around the selected item.
    e.DrawFocusRectangle();
} //listBox1_DrawItem

// 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.get_Items().
           get_Item(e.get_Index()));
    // Split the string at the " . "  character.
    String resultStrings[] = itemString.Split(new char[] { '.' });
    // 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.set_ItemHeight(e.get_ItemHeight() + 10);
    }
    else {
        e.set_ItemHeight(e.get_ItemHeight() + 5);
    }
} //listBox1_MeasureItem

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see System Requirements.

.NET Framework

Supported in: 2.0, 1.1, 1.0

Community Additions

ADD
Show: