2010-12-20 19 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; 
    } 
} 
相關問題