使用数组信息填充组合框

时间:2012-12-18 05:15:30

标签: c# arrays combobox

我正在尝试使用另一个类中的数组的PART填充ComboBox。我必须创建一个创建客户,库存和订单的应用程序。在订单上,我试图分别从客户和库存类中的数组中提取客户ID和库存ID信息。这些数组中包含多种类型的信息:客户ID,名称,地址,状态,邮政编码等;库存ID,名称,折扣价值和价格。

这就是我的数组设置如下:

public static Customer[] myCustArray = new Customer[100];

public string customerID;
public string customerName;
public string customerAddress;
public string customerState;
public int customerZip;
public int customerAge;
public int totalOrdered;

这就是我的组合框设置如下:

public void custIDComboBox_SelectedIndexChanged(object sender, EventArgs e)
{
    custIDComboBox.Items.AddRange(Customer.myCustArray);

    custIDComboBox.DataSource = Customer.getAllCustomers();
}

2 个答案:

答案 0 :(得分:3)

使用数据绑定。

给出一个现有的对象数组(在您的情况下为“Customers”),如下所示:

public static Customer[] myCustArray = new Customer[100];

将数组定义为数据源,如下所示:

BindingSource theBindingSource = new BindingSource();
theBindingSource.DataSource = myCustArray;
myComboBox.DataSource = bindingSource.DataSource;

然后你可以像这样设置每个项目的标签和值:

//That should be a string represeting the name of the customer object property.
myComboBox.DisplayMember = "customerName";
myComboBox.ValueMember = "customerID";

就是这样。

答案 1 :(得分:0)

Customer.myCustArray[0] = new Customer { customerID = "1", customerName = "Jane" };  
Customer.myCustArray[1] = new Customer { customerID = "2", customerName = "Jack" };

上面你不需要两行,我添加它们来查看输出,下面的代码生成ComboBox项:

foreach (Customer cus in Customer.myCustArray)
{
    comboBox1.Items.Add("[" + cus.customerID + "] " + cus.customerName);
}

您可以将此代码复制到相应的事件中,例如它可以是FormLoad,如果您希望每次激活表单时刷新ComboBox的项目,都可以执行此操作:

private void Form3_Activated(object sender, EventArgs e)
{
    comboBox1.Items.Clear();
    foreach (Customer cus in Customer.myCustArray)
    {
        comboBox1.Items.Add("[" + cus.customerID + "] " + cus.customerName);
    }
}