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

Ste*_*fan 23 c# winforms

我使用列表框并向其添加对象.

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

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

日Thnx!

Fré*_*idi 32

您可以使用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"
});
Run Code Online (Sandbox Code Playgroud)


Evr*_*glu 11

您可以使用listBox的DisplayMember属性.

listbox.DisplayMember = "username";
Run Code Online (Sandbox Code Playgroud)

还有一个等效属性来定义实际值,您可以使用它来检索用户标识.例如,如果您像这样定义列表:

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
Run Code Online (Sandbox Code Playgroud)

然后,您可以通过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
Run Code Online (Sandbox Code Playgroud)

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

listbox.SelectedItem = item1;
// OR
listbox.Text = item1.username;
// OR
listbox.SelectedValue = item1.userid;
Run Code Online (Sandbox Code Playgroud)


Bru*_*oLM 1

设置DataTextFieldDataValueField

ListBox a = new ListBox();
a.DataTextField = "username";
a.DataValueField = "userid";
Run Code Online (Sandbox Code Playgroud)

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

a.Items.Add(new ListItem() { Value = User.ID, Text = User.Name });
Run Code Online (Sandbox Code Playgroud)