Export (0) Print
Expand All

ListBox.ObjectCollection Class

Represents the collection of items in a ListBox.

Namespace:  System.Windows.Forms
Assembly:  System.Windows.Forms (in System.Windows.Forms.dll)

[ListBindableAttribute(false)]
public class ObjectCollection : IList, 
	ICollection, IEnumerable

The ListBox.ObjectCollection type exposes the following members.

  NameDescription
Public methodListBox.ObjectCollection(ListBox)Initializes a new instance of ListBox.ObjectCollection.
Public methodListBox.ObjectCollection(ListBox, Object[])Initializes a new instance of ListBox.ObjectCollection containing an array of objects.
Public methodListBox.ObjectCollection(ListBox, ListBox.ObjectCollection)Initializes a new instance of ListBox.ObjectCollection based on another ListBox.ObjectCollection.
Top

  NameDescription
Public propertyCountGets the number of items in the collection.
Public propertyIsReadOnlyGets a value indicating whether the collection is read-only.
Public propertyItemGets or sets the item at the specified index within the collection.
Top

  NameDescription
Public methodAddAdds an item to the list of items for a ListBox.
Public methodAddRange(ListBox.ObjectCollection)Adds the items of an existing ListBox.ObjectCollection to the list of items in a ListBox.
Public methodAddRange(Object[])Adds an array of items to the list of items for a ListBox.
Public methodClearRemoves all items from the collection.
Public methodContainsDetermines whether the specified item is located within the collection.
Public methodCopyToCopies the entire collection into an existing array of objects at a specified location within the array.
Public methodEquals(Object)Determines whether the specified object is equal to the current object. (Inherited from Object.)
Protected methodFinalizeAllows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.)
Public methodGetEnumeratorReturns an enumerator to use to iterate through the item collection.
Public methodGetHashCodeServes as the default hash function. (Inherited from Object.)
Public methodGetTypeGets the Type of the current instance. (Inherited from Object.)
Public methodIndexOfReturns the index within the collection of the specified item.
Public methodInsertInserts an item into the list box at the specified index.
Protected methodMemberwiseCloneCreates a shallow copy of the current Object. (Inherited from Object.)
Public methodRemoveRemoves the specified object from the collection.
Public methodRemoveAtInfrastructure. Removes the item at the specified index within the collection.
Public methodToStringReturns a string that represents the current object. (Inherited from Object.)
Top

  NameDescription
Public Extension MethodAsParallelEnables parallelization of a query. (Defined by ParallelEnumerable.)
Public Extension MethodAsQueryableConverts an IEnumerable to an IQueryable. (Defined by Queryable.)
Public Extension MethodCast<TResult>Casts the elements of an IEnumerable to the specified type. (Defined by Enumerable.)
Public Extension MethodOfType<TResult>Filters the elements of an IEnumerable based on a specified type. (Defined by Enumerable.)
Top

  NameDescription
Explicit interface implemetationPrivate methodICollection.CopyToInfrastructure. Copies the elements of the collection to an array, starting at a particular array index.
Explicit interface implemetationPrivate propertyICollection.IsSynchronizedInfrastructure. For a description of this member, see ICollection.IsSynchronized.
Explicit interface implemetationPrivate propertyICollection.SyncRootInfrastructure. For a description of this member, see ICollection.SyncRoot.
Explicit interface implemetationPrivate methodIList.AddInfrastructure. Adds an object to the ListBox class.
Explicit interface implemetationPrivate propertyIList.IsFixedSizeInfrastructure. For a description of this member, see IList.IsFixedSize.
Top

The ListBox.ObjectCollection class stores the items displayed in the ListBox. There are two other collections defined within the ListBox class that enable you to determine what items are selected within this collection. The ListBox.SelectedObjectCollection class provides properties and methods for determining what items are selected within the ListBox.ObjectCollection, while the ListBox.SelectedIndexCollection class enables you to determine what indexes within the ListBox.ObjectCollection are selected.

There are a number of ways to add items to the collection. The Add method provides the ability to add a single object to the collection. To add a number of objects to the collection, you create an array of items and assign it to the AddRange method. If you want to insert an object at a specific location within the collection, you can use the Insert method. To remove items, you can use either the Remove method or the RemoveAt method if you know where the item is located within the collection. The Clear method enables you to remove all items from the collection instead of using the Remove method to remove a single item at a time.

You can also manipulate the items of a ListBox by using the DataSource property. If you use the DataSource property to add items to a ListBox, you can view the items in the ListBox using the Items property but you cannot add or remove items from the list using the methods of the ListBox.ObjectCollection.

In addition to methods and properties for adding and removing items, the ListBox.ObjectCollection also provides methods to find items within the collection. The Contains method enables you to determine whether an object is a member of the collection. Once you know that the item is located within the collection, you can use the IndexOf method to determine where the item is located within the collection.

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

	}
	an owner-drawn ListBox by setting the the DrawMode property to 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 in an empty form that imports the System.Drawing
	namespace and the System.Windows.Forms namespace.

.NET Framework

Supported in: 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

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

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.
Show:
© 2014 Microsoft