1

我有一张员工表。我希望组合框显示员工编号和城市。

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;

这就是我到目前为止所得到的,有人可以帮助我吗?

4

3 回答 3

2

您可以将 Format 事件添加到您的 ComboBox,并在其中组合您想要显示的任何内容:

private void _Combobox1_Format(object sender, ListControlConvertEventArgs e)
{
    var x = (DateFilterType)e.ListItem;
    e.Value = /* insert string concatenation stuff here... */;
}
于 2013-08-07T15:50:47.310 回答
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;

显示的文本comboBox1blah1 blah2(我们将在这里的格式取消我所有的空格,但这些字符串应该被填充)

你可以使用你想要的任何值

private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
   label1.Text = ((MyClass)comboBox1.SelectedItem).ToString();
}

无需设置值成员

于 2013-08-07T16:06:27.363 回答
0

在您的数据表中,使用添加带有表达式的第三列。在最后一列中,将另外两列连接起来。

检查以获取表达式参考。

在此之后使用第三列绑定您的组合框。

于 2013-08-07T15:09:32.810 回答