简单的情况,comboBox1显示项目列表,当用户点击任何项目时,我希望该项目的价格放入文本框
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
if (comboBox1.SelectedItem == "LED")
{
textBox1.Text = "20";
}
if (comboBox1.SelectedItem == "Ahorradores")
{
textBox1.Text = "50";
}
if (comboBox1.SelectedItem == "Incandecentes")
{
textBox1.Text = "100";
}
}
我不能让它工作,如果有人知道如何做到这一点以及excel会很棒,我已经搜索了很多但没有找到答案
答案 0 :(得分:1)
你可能应该选择比在combo事件中硬编码你的值更好的选择。例如,您可以为元素创建一个类:
public class Element
{
public string Name { get; set; }
public decimal Price { get; set; }
public override string ToString()
{
return this.Name;
}
}
在填充组合框时,通过使用此类并从数据库或任何数据源设置其值来执行此操作。硬编码示例:
comboBox1.Items.Add(new Element() { Name = "LED", Price = 20 });
comboBox1.Items.Add(new Element() { Name = "Ahorradores", Price = 50 });
comboBox1.Items.Add(new Element() { Name = "Incandescentes", Price = 100 });
然后,把它放在事件中:
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
Element element = comboBox1.SelectedItem as Element;
textBox1.Text = element.Price.ToString();
}
请注意,我在" incandescentes"。
中修正了您的拼写错误答案 1 :(得分:0)
您可以在此处使用文字属性。喜欢这个
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
switch (comboBox1.Text)
{
case "LED":
textBox1.Text = "20";
break;
case "Ahorradores":
textBox1.Text = "50";
break;
case "Incandecentes":
textBox1.Text = "100";
break;
}
}
答案 2 :(得分:0)
当我感到懒惰时,我喜欢使用这个小黑客。 <{1}}之后的任何文字都不会显示。
\0
然后获取comboBox1.DataSource = "LED\020 Ahorradores\050 Incandecentes\0100".Split();
\0