我有一张员工表。我希望组合框能够显示员工编号和城市。
SqlCommand cmd = new SqlCommand();
Connection c = new Connection();
cmd.CommandText = "SELECT employeeNumber, city FROM tblEmployee";
SqlDataAdapter adp = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
adp.Fill(ds, "Employee");
comboBox1.DataSource = ds;
这就是我到目前为止所得到的,有人可以帮助我吗?
答案 0 :(得分:2)
您可以将一个Format事件添加到您的ComboBox中,并在其中组成您想要显示的内容:
private void _Combobox1_Format(object sender, ListControlConvertEventArgs e)
{
var x = (DateFilterType)e.ListItem;
e.Value = /* insert string concatenation stuff here... */;
}
答案 1 :(得分:1)
您可以覆盖绑定到组合框的类的.ToString()
。
class MyClass
{
public override string ToString()
{
return thing1.PadRight(10) + thing2.PadRight(10);
}
public string thing1 { get; set; }
public string thing2 { get; set; }
}
然后,如果您执行类似
的操作List<MyClass> mc = new List<MyClass>();
mc.Add(new MyClass() { thing1 = "blah1", thing2 = "blah2});
comboBox1.DataSource = mc;
comboBox1
中显示的文字是blah1 blah2
(我们这里的格式化会删除所有空格,但这些字符串应该填充)
你可以在课堂上使用你想要的任何价值
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
label1.Text = ((MyClass)comboBox1.SelectedItem).ToString();
}
无需设置值成员
答案 2 :(得分:0)