2010-12-20 23 views

回答

1

设置DataTextFieldDataValueField

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

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

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

你可以用你的ListBox的DisplayMember属性。

listbox.DisplayMember = "username"; 

还有一个等价的属性来定义实际值,您可以用它来检索用户标识。例如,如果你定义列表如下:

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 

你还可以:

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点不同的方式(项目,值或文本)这样的引用在列表中的对象设置所选项目相同三种方式:

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

您可以使用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" 
}); 
0

您可以覆盖“的ToString”方法。

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

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