Export (0) Print
Expand All

ListControl.DataSource Property

Gets or sets the data source for this ListControl.

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

public:
property Object^ DataSource {
	Object^ get ();
	void set (Object^ 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

ArgumentException

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.

#using <System.dll>
#using <System.Drawing.dll>
#using <System.Windows.Forms.dll>

using namespace System;
using namespace System::Windows::Forms;
using namespace System::Drawing;
using namespace System::Collections;
public ref class USState
{
private:
   String^ myShortName;
   String^ myLongName;

public:
   USState( String^ strLongName, String^ strShortName )
   {
      this->myShortName = strShortName;
      this->myLongName = strLongName;
   }

   property String^ ShortName 
   {
      String^ get()
      {
         return myShortName;
      }
   }

   property String^ LongName 
   {
      String^ get()
      {
         return myLongName;
      }

   }
   virtual String^ ToString() override
   {
      return String::Concat( this->ShortName, " - ", this->LongName );
   }
};

public ref class ListBoxSample3: public Form
{
private:
   ListBox^ ListBox1;
   TextBox^ textBox1;

public:
   ListBoxSample3()
   {
      ListBox1 = gcnew ListBox;
      textBox1 = gcnew TextBox;
      this->ClientSize = System::Drawing::Size( 292, 181 );
      this->Text = "ListBox Sample3";
      ListBox1->Location = Point(24,16);
      ListBox1->Name = "ListBox1";
      ListBox1->Size = System::Drawing::Size( 232, 130 );
      textBox1->Location = Point(24,160);
      textBox1->Name = "textBox1";
      textBox1->Size = System::Drawing::Size( 240, 24 );
      array<Control^>^temp2 = {ListBox1,textBox1};
      this->Controls->AddRange( temp2 );
      
      // Populates the list box using DataSource. 
      // DisplayMember is used to display just the long name of each state.
      ArrayList^ USStates = gcnew ArrayList;
      USStates->Add( gcnew USState( "Alabama","AL" ) );
      USStates->Add( gcnew USState( "Washington","WA" ) );
      USStates->Add( gcnew USState( "West Virginia","WV" ) );
      USStates->Add( gcnew USState( "Wisconsin","WI" ) );
      USStates->Add( gcnew USState( "Wyoming","WY" ) );
      ListBox1->SelectedValueChanged += gcnew EventHandler( this, &ListBoxSample3::ListBox1_SelectedValueChanged );
      ListBox1->DataSource = USStates;
      ListBox1->DisplayMember = "LongName";
   }

   void InitializeComponent(){}

private:

   void ListBox1_SelectedValueChanged( Object^ /*sender*/, EventArgs^ /*e*/ )
   {
      if ( ListBox1->SelectedIndex != -1 )
            textBox1->Text = ListBox1->SelectedValue->ToString();
   }
};

[STAThread]
int main()
{
   Application::Run( gcnew 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;
    }//get_ShortName

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

    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_Name("ListBox1");
        listBox1.set_Size(new Size(232, 130));
        textBox1.set_Location(new Point(24, 160));
        textBox1.set_Name("textBox1");
        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"));

        listBox1.add_SelectedValueChanged(
            new EventHandler(listBox1_SelectedValueChanged));
        listBox1.set_DataSource(uSStates);
        listBox1.set_DisplayMember("LongName");
    } //ListBoxSample3
    
    private void InitializeComponent()
    {
    } //InitializeComponent

    private void listBox1_SelectedValueChanged(Object sender, EventArgs e)
    {
        if (listBox1.get_SelectedIndex() != -1) {
            textBox1.set_Text(listBox1.get_SelectedValue().ToString());
        }
    } //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

Community Additions

ADD
Show:
© 2014 Microsoft