This documentation is archived and is not being maintained.

ListControl.DataSource Property

Gets or sets the data source for this ListControl.

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

Public Property DataSource As Object
Dim instance As ListControl
Dim value As Object

value = instance.DataSource

instance.DataSource = value
/** @property */
public Object get_DataSource ()

/** @property */
public void set_DataSource (Object value)

public function get DataSource () : Object

public function set DataSource (value : Object)

Not applicable.

Property Value

An object that implements the IList or IListSource interfaces, such as a DataSet or an Array. The default is a null reference (Nothing in Visual Basic).

Exception typeCondition


The assigned value does not implement the IList or IListSource interfaces.

There are two ways to fill the ComboBox and ListBox controls.

For example, you can add objects to the ComboBox by using the Add method. You can also add objects to a ComboBox by using the DataSource, DisplayMember, and ValueMember properties to fill the ComboBox.

When the DataSource property is set, a user cannot modify the items collection.

If setting the DataSource property causes the data source to change, the DataSourceChanged event is raised. If setting this property causes the data member to change, the DisplayMemberChanged event is raised.

When you set DataSource to a null reference (Nothing in Visual Basic), DisplayMember is set to an empty string ("").

The following code example is a complete application that shows how you can use DataSource, DisplayMember, ValueMember, and SelectedValue members of the ListControl class as implemented by the ListBox class. The example loads an ArrayList and the list box. When the user selects an item in the list box, the selected value is used to return the data associated with the selected item.

Imports System
Imports System.Windows.Forms
Imports System.Drawing
Imports System.Collections

Public Class USState
   Private myShortName As String
   Private myLongName As String
   Public Sub New(strLongName As String, strShortName As String)
      Me.myShortName = strShortName
      Me.myLongName = strLongName
   End Sub 'New
   Public ReadOnly Property ShortName() As String
         Return myShortName
      End Get
   End Property
   Public ReadOnly Property LongName() As String
         Return myLongName
      End Get
   End Property
   Public Overrides Function ToString() As String
      Return Me.ShortName + " - " + Me.LongName
   End Function 'ToString
End Class 'USState

Public Class ListBoxSample3
   Inherits Form
   Private ListBox1 As New ListBox()
   Private textBox1 As New TextBox()
   <STAThread()>  _
   Shared Sub Main()
      Application.Run(New ListBoxSample3())
   End Sub 'Main
   Public Sub New()
      Me.ClientSize = New Size(292, 181)
      Me.Text = "ListBox Sample3"
      ListBox1.Location = New Point(24, 16)
      ListBox1.Name = "ListBox1"
      ListBox1.Size = New Size(232, 130)
      textBox1.Location = New Point(24, 160)
      textBox1.Name = "textBox1"
      textBox1.Size = New Size(240, 24)
      Me.Controls.AddRange(New Control() {ListBox1, textBox1})
      ' Populates the list box using DataSource. 
      ' DisplayMember is used to display just the long name of each state.
      Dim USStates As New ArrayList()
      USStates.Add(New USState("Alabama", "AL"))
      USStates.Add(New USState("Washington", "WA"))
      USStates.Add(New USState("West Virginia", "WV"))
      USStates.Add(New USState("Wisconsin", "WI"))
      USStates.Add(New USState("Wyoming", "WY"))
      AddHandler ListBox1.SelectedValueChanged, AddressOf ListBox1_SelectedValueChanged
      ListBox1.DataSource = USStates
      ListBox1.DisplayMember = "LongName"
   End Sub 'New
   Private Sub InitializeComponent()
   End Sub 'InitializeComponent
   Private Sub ListBox1_SelectedValueChanged(sender As Object, e As EventArgs)
      If ListBox1.SelectedIndex <> - 1 Then
         textBox1.Text = ListBox1.SelectedValue.ToString()
      End If
   End Sub 'ListBox1_SelectedValueChanged
End Class 'ListBoxSample3

package MyListControlSample;

import System.*;
import System.Windows.Forms.*;
import System.Drawing.*;
import System.Collections.*;

public class USState
    private String myShortName;
    private String myLongName;

    public USState(String strLongName, String strShortName)
        this.myShortName = strShortName;
        this.myLongName = strLongName;
    } //USState

    /** @property
    public String get_ShortName()
        return myShortName;

    /** @property 
    public String get_LongName()
        return myLongName;

    public String ToString()
        return this.get_ShortName() + " - " + this.get_LongName();
    } //ToString
} //USState

public class ListBoxSample3 extends Form
    private ListBox listBox1 = new ListBox();
    private TextBox textBox1 = new TextBox();

    /** @attribute STAThread()
    public static void main(String[] args)
        Application.Run(new ListBoxSample3());
    } //main

    public ListBoxSample3()
        this.set_ClientSize(new Size(292, 181));
        this.set_Text("ListBox Sample3");

        listBox1.set_Location(new Point(24, 16));
        listBox1.set_Size(new Size(232, 130));
        textBox1.set_Location(new Point(24, 160));
        textBox1.set_Size(new Size(240, 24));
        this.get_Controls().AddRange(new Control[] { listBox1, textBox1 });

        // Populates the list box using DataSource. 
        // DisplayMember is used to display just the long name of each state.
        ArrayList uSStates = new ArrayList();
        uSStates.Add(new USState("Alabama", "AL"));
        uSStates.Add(new USState("Washington", "WA"));
        uSStates.Add(new USState("West Virginia", "WV"));
        uSStates.Add(new USState("Wisconsin", "WI"));
        uSStates.Add(new USState("Wyoming", "WY"));

            new EventHandler(listBox1_SelectedValueChanged));
    } //ListBoxSample3
    private void InitializeComponent()
    } //InitializeComponent

    private void listBox1_SelectedValueChanged(Object sender, EventArgs e)
        if (listBox1.get_SelectedIndex() != -1) {
    } //listBox1_SelectedValueChanged
} //ListBoxSample3 

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

The Microsoft .NET Framework 3.0 is supported on Windows Vista, Microsoft Windows XP SP2, and Windows Server 2003 SP1.

.NET Framework

Supported in: 3.0, 2.0, 1.1, 1.0

.NET Compact Framework

Supported in: 2.0, 1.0