我想知道如何将价格添加到以下内容中:
private void OrderForm_Load(object sender, EventArgs e)
{
comboBox1.Items.Add("0");
comboBox1.Items.Add("10");
comboBox1.Items.Add("20");
comboBox1.Items.Add("30");
comboBox1.Items.Add("40");
comboBox1.Items.Add("50");
comboBox1.Items.Add("60");
comboBox1.Items.Add("70");
comboBox1.Items.Add("80");
comboBox1.Items.Add("90");
comboBox1.Items.Add("100");
comboBox2.Items.Add("None");
comboBox2.Items.Add("Chocolate");
comboBox2.Items.Add("Vanilla");
comboBox2.Items.Add("Strawberry");
comboBox3.Items.Add("Paypal");
comboBox3.Items.Add("Visa Electron");
comboBox3.Items.Add("MasterCard");
comboBox4.Items.Add("None");
comboBox4.Items.Add("Small");
comboBox4.Items.Add("Medium");
comboBox4.Items.Add("Large");
}
“0 - 100”的数字价格应该分别是“15英镑”吗?
答案 0 :(得分:4)
组合框显示ToString
方法的结果作为项目的名称。这意味着您可以创建包含名称和价格的自己的对象,并覆盖ToString
以仅显示名称。例如:
public class MyItem
{
private readonly string name;
public string Name
{
get { return this.name; }
}
private readonly decimal price;
public decimal Price
{
get { return this.price; }
}
public MyItem(string name, decimal price)
{
this.name = name;
this.price = price;
}
public override string ToString()
{
return this.name;
}
}
然后创建并添加自己的对象。
comboBox2.Items.Add(new MyItem("Chocolate", 10.00m));
comboBox2.Items.Add(new MyItem("Vanilla", 15.00m));
comboBox2.Items.Add(new MyItem("Strawberry", 8.50m));
每当您从组合框中获取项目(例如当前选定的项目)时,Price
属性将告诉您价格。例如:
MyItem selectedItem = (MyItem)comboBox2.SelectedItem;
decimal totalPrice = selectedItem.Price + 1.00m /* Shipping */;
答案 1 :(得分:0)
要直接回答您的问题,您可以使用ComboBox.SelectedIndex值,如下所示:
if (comboBox4.SelectedIndex < 100) {
price = 15;
}
我不会把它放在我的代码中。以这种方式编写代码会尖叫“维护地狱”,所以请重新调整代码。我打算按照Martin的使用面向对象来存储名称/价格的解决方案提出建议,所以我建议你去试试。