Mek*_*ine 15 c# combobox winforms
在我的表,我的领域firstname
和lastname
,现在我要的是设置firstname
并lastname
作为displaymember
一个组合框,但我不知道该怎么做.
像这样的东西
cmbEmployees.DataSource = GetEmployees();
//something like below line which doesn't work
cmbEmployees.DisplayMember = "lastname, first_name";
cmbEmployees.ValueMember = "id";
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?这样既lastname
和firstname
将被显示在combobox
Eli*_*uta 54
此示例将指导您如何在不修改基类的情况下执行此操作.
首先,您可以将DisplayMember留给一个属性,让我们说:
cmbEmployees.DisplayMember = "lastname";
Run Code Online (Sandbox Code Playgroud)
现在,在[Design]模式下转到表单,右键单击ComboBox - > Properties.
在"属性"窗口的顶部,单击"事件"(闪电图标),
在下面的事件列表中查找格式(在Property Changed下)并输入一些事件名称,例如:ComboBoxFormat,然后按Enter键.你会看到这个:
private void ComboBoxFormat(object sender, ListControlConvertEventArgs e)
{
}
Run Code Online (Sandbox Code Playgroud)
现在写下以下几行:
private void ComboBoxFormat(object sender, ListControlConvertEventArgs e)
{
// Assuming your class called Employee , and Firstname & Lastname are the fields
string lastname = ((Employee)e.ListItem).Firstname;
string firstname = ((Employee)e.ListItem).Lastname;
e.Value = lastname + " " + firstname;
}
Run Code Online (Sandbox Code Playgroud)
而已 ;)
Mas*_*ash 26
假设你有一个这样的类:
class Person
{
public string FirstName
{
get;
set;
}
public string LastName
{
get;
set;
}
public string FullName
{
get
{
return LastName + ", " + FirstName;
}
}
public Person(string firstname, string lastname)
{
FirstName = firstname;
LastName = lastname;
}
}
Run Code Online (Sandbox Code Playgroud)
如果您没有FullName
属性,只需以您希望显示名称的格式创建一个属性.然后设置DisplayMember
等于FullName
.
and*_*ndy 18
您的查询在GetEmployees()函数中应该是这样的.
"SELECT id,(lastname + ' ' + first_name) AS NAME FROM TABLE"
cmbEmployees.DataSource = GetEmployees();
cmbEmployees.DisplayMember = "NAME";
cmbEmployees.ValueMember = "id";
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
53181 次 |
最近记录: |