c#将对象添加到列表框并在其中显示对象的字符串

时间:2010-12-20 11:20:55

标签: c#

我正在使用列表框并向其添加对象。

该对象包含2个变量,比如用户名和用户ID。

如何在列表中添加对象 listbox.Items.add(对象); 并显示该对象的用户名?

日Thnx!

4 个答案:

答案 0 :(得分:31)

您可以使用DisplayMemberValueMember属性显示对象的UserName属性,并使用其UserId属性作为列表项值:

class YourItem
{
    public string UserName { get; set; }
    public string UserId { get; set; }
}

yourListBox.DisplayMember = "UserName";
yourListBox.ValueMember = "UserId";

yourListBox.Items.Add(new YourItem {
    UserName = "FooName",
    UserId = "FooId"
});

答案 1 :(得分:11)

您可以使用listBox的DisplayMember属性。

listbox.DisplayMember = "username";

还有一个等效属性来定义实际值,您可以使用它来检索用户ID。例如,如果您定义列表如下:

listbox.DisplayMember = "username";
listbox.ValueMember = "userid";
var item1 = new MyType { username = "user1", userid = "id1" }; // Create an item for the list

listbox.Items.Add(item1); // Add the item
listbox.SelectedIndex = 0; // Selects the first item

然后您可以通过3种不同的方式(项目,值或文本)引用列表中的对象,如下所示:

MyObject newItem = (MyObject) listbox.SelectedItem; // Gets the selected MyType
// OR
string username = listbox.Text; // Gets the selected user name using the DisplayMember property of the listbox
// OR
string userid = listbox.SelectedValue; // Gets the selected user's userid using the ValueMember property of the listbox

您还可以使用相同的3种不同方式设置所选项目:

listbox.SelectedItem = item1;
// OR
listbox.Text = item1.username;
// OR
listbox.SelectedValue = item1.userid;

答案 2 :(得分:1)

设置DataTextFieldDataValueField

ListBox a = new ListBox();
a.DataTextField = "username";
a.DataValueField = "userid";

要使用.Add方法添加,您可以使用:

a.Items.Add(new ListItem() { Value = User.ID, Text = User.Name });

答案 3 :(得分:0)

您可以覆盖" ToString"方法

class User
{
    public string username { set; get; }
    public string userid { set; get; }

    public override string ToString()
    {
        return username;
    }
}
相关问题