在一个组合框中显示2列
本文关键字:显示 2列 组合 一个 | 更新日期: 2023-09-27 18:26:42
我有一个员工表。我希望组合框显示员工号码和城市。
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;
这就是我目前所得到的,有人能帮我吗?
您可以将Format事件添加到ComboBox中,并在其中编写您想要显示的内容:
private void _Combobox1_Format(object sender, ListControlConvertEventArgs e)
{
var x = (DateFilterType)e.ListItem;
e.Value = /* insert string concatenation stuff here... */;
}
您可以覆盖绑定到组合框的类上的.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();
}
而不必设置值成员
在数据表中,使用add第三列和表达式。在最后一列中,对另外两列进行串联。
检查此项以获取表达式引用。
在此之后,使用第三列来绑定您的组合框。