ListControl.DisplayMember ListControl.DisplayMember ListControl.DisplayMember ListControl.DisplayMember Property

Definición

Obtiene o establece la propiedad que se va a mostrar para este ListControl.Gets or sets the property to display for this ListControl.

public:
 property System::String ^ DisplayMember { System::String ^ get(); void set(System::String ^ value); };
[System.ComponentModel.TypeConverter("System.Windows.Forms.Design.DataMemberFieldConverter, System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")]
[System.ComponentModel.TypeConverter("System.Windows.Forms.Design.DataMemberFieldConverter, System.Design, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")]
[System.ComponentModel.TypeConverter("System.Windows.Forms.Design.DataMemberFieldConverter, System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")]
public string DisplayMember { get; set; }
member this.DisplayMember : string with get, set
Public Property DisplayMember As String

Valor de propiedad

Un String especifica el nombre de una propiedad de objeto que se encuentra en la colección especificada por el DataSource propiedad.A String specifying the name of an object property that is contained in the collection specified by the DataSource property. El valor predeterminado es una cadena vacía ("").The default is an empty string ("").

Ejemplos

El ejemplo de código siguiente es una aplicación completa que muestra cómo se puede usar DataSource, DisplayMember, ValueMember, y SelectedValue los miembros de la ListControl clase implementada por el ListBox clase.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. El ejemplo carga un ArrayList y el cuadro de lista.The example loads an ArrayList and the list box. Cuando el usuario selecciona un elemento en el cuadro de lista, el valor seleccionado se utiliza para devolver los datos asociados con el elemento seleccionado.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;
      }

   }
};

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

public:
   ListBoxSample3()
   {
      ListBox1 = gcnew ListBox;
      label1 = gcnew Label;
      textBox1 = gcnew TextBox;
      this->ClientSize = System::Drawing::Size(307, 206 );
      this->Text = "ListBox Sample3";
      ListBox1->Location = Point(54,16);
      ListBox1->Name = "ListBox1";
      ListBox1->Size = System::Drawing::Size( 240, 130 );
      label1->Location = Point(14,150);
      label1->Name = "label1";
      label1->Size = System::Drawing::Size(40, 24);
      label1->Text = "Value";
      textBox1->Location = Point(54,150);
      textBox1->Name = "textBox1";
      textBox1->Size = System::Drawing::Size( 240, 24 );
      array<Control^>^temp2 = {ListBox1,label1, textBox1};
      this->Controls->AddRange( temp2 );

      // Populate the list box using an array as 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->DataSource = USStates;
      ListBox1->DisplayMember = "LongName";
      ListBox1->ValueMember = "ShortName";
      ListBox1->SelectedValueChanged += gcnew EventHandler( this, &ListBoxSample3::ListBox1_SelectedValueChanged );
      ListBox1->SetSelected(0, false);
   }

   void InitializeComponent(){}

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

[STAThread]
int main()
{
   Application::Run( gcnew ListBoxSample3 );
}
using System;
using System.Windows.Forms;
using System.Drawing;
using System.Collections;

namespace MyListControlSample
{
    public class ListBoxSample3 : Form
    {
        private ListBox ListBox1 = new ListBox();
        private Label label1 = new Label();
        private TextBox textBox1 = new TextBox();

        [STAThread]
        static void Main()
        {
            Application.Run(new ListBoxSample3());
        }

        public ListBoxSample3()
        {
            this.ClientSize = new Size(307, 206);
            this.Text = "ListBox Sample3";

            ListBox1.Location = new Point(54, 16);
            ListBox1.Name = "ListBox1";
            ListBox1.Size = new Size(240, 130);

            label1.Location = new Point(14, 150);
            label1.Name = "label1";
            label1.Size = new Size(40, 24);
            label1.Text = "Value";

            textBox1.Location = new Point(54, 150);
            textBox1.Name = "textBox1";
            textBox1.Size = new Size(240, 24);
            
            this.Controls.AddRange(new Control[] { ListBox1, label1, textBox1 });

            // Populate the list box using an array as DataSource.
            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.DataSource = USStates;

            // Set the long name as the property to be displayed and the short
            // name as the value to be returned when a row is selected.  Here
            // these are properties; if we were binding to a database table or
            // query these could be column names.
            ListBox1.DisplayMember = "LongName";
            ListBox1.ValueMember = "ShortName";

            // Bind the SelectedValueChanged event to our handler for it.
            ListBox1.SelectedValueChanged += 
                new EventHandler(ListBox1_SelectedValueChanged);

            // Ensure the form opens with no rows selected.
            ListBox1.ClearSelected();
        }

        private void InitializeComponent()
        {
        }

        private void ListBox1_SelectedValueChanged(object sender, EventArgs e)
        {
            if (ListBox1.SelectedIndex != -1)
            {
                textBox1.Text = ListBox1.SelectedValue.ToString();
                // If we also wanted to get the displayed text we could use
                // the SelectedItem item property:
                // string s = ((USState)ListBox1.SelectedItem).LongName;
            }
        }
    }

    public class USState
    {
        private string myShortName;
        private string myLongName;

        public USState(string strLongName, string strShortName)
        {

            this.myShortName = strShortName;
            this.myLongName = strLongName;
        }

        public string ShortName
        {
            get
            {
                return myShortName;
            }
        }

        public string LongName
        {

            get
            {
                return myLongName;
            }
        }

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

Public Class ListBoxSample3
    Inherits Form

    Private ListBox1 As New ListBox()
    Private label1 As New Label()
    Private textBox1 As New TextBox()

    <STAThread()> _
    Shared Sub Main()
        Application.Run(New ListBoxSample3())
    End Sub 'Main

    Public Sub New()
        Me.ClientSize = New Size(307, 206)
        Me.Text = "ListBox Sample3"

        ListBox1.Location = New Point(54, 16)
        ListBox1.Name = "ListBox1"
        ListBox1.Size = New Size(240, 130)

        label1.Location = New Point(14, 150)
        label1.Name = "label1"
        label1.Size = New Size(40, 24)
        label1.Text = "Value"

        textBox1.Location = New Point(54, 150)
        textBox1.Name = "textBox1"
        textBox1.Size = New Size(240, 24)

        Me.Controls.AddRange(New Control() {ListBox1, label1, textBox1})

        ' Populate the list box using an array as DataSource. 
        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"))
        ListBox1.DataSource = USStates

        ' Set the long name as the property to be displayed and the short
        ' name as the value to be returned when a row is selected.  Here
        ' these are properties; if we were binding to a database table or
        ' query these could be column names.
        ListBox1.DisplayMember = "LongName"
        ListBox1.ValueMember = "ShortName"

        ' Bind the SelectedValueChanged event to our handler for it.
        AddHandler ListBox1.SelectedValueChanged, AddressOf ListBox1_SelectedValueChanged

        ' Ensure the form opens with no rows selected.
        ListBox1.ClearSelected()
    End Sub 'New

    Private Sub InitializeComponent()
    End Sub 'InitializeComponent

    Private Sub ListBox1_SelectedValueChanged(ByVal sender As Object, ByVal e As EventArgs)
        If ListBox1.SelectedIndex <> -1 Then
            textBox1.Text = ListBox1.SelectedValue.ToString()
            ' If we also wanted to get the displayed text we could use
            ' the SelectedItem item property:
            ' Dim s = CType(ListBox1.SelectedItem, USState).LongName
        End If
    End Sub 'ListBox1_SelectedValueChanged
End Class 'ListBoxSample3

Public Class USState
    Private myShortName As String
    Private myLongName As String

    Public Sub New(ByVal strLongName As String, ByVal strShortName As String)
        Me.myShortName = strShortName
        Me.myLongName = strLongName
    End Sub 'New

    Public ReadOnly Property ShortName() As String
        Get
            Return myShortName
        End Get
    End Property

    Public ReadOnly Property LongName() As String
        Get
            Return myLongName
        End Get
    End Property

End Class 'USState

Comentarios

Los controles que heredan de ListControl puede mostrar diversos tipos de objetos.The controls that inherit from ListControl can display diverse types of objects. Si la propiedad especificada no existe en el objeto o el valor de DisplayMember es una cadena vacía (""), los resultados del objeto ToString método se muestran en su lugar.If the specified property does not exist on the object or the value of DisplayMember is an empty string (""), the results of the object's ToString method are displayed instead.

Si no se puede establecer el nuevo miembro de presentación, establecer el miembro de pantalla anterior se mantiene.If the new display member cannot be set, the previous display member setting is maintained.

Se aplica a