使用if从组合框中将值添加到文本框中

时间:2016-08-26 01:37:30

标签: c#

简单的情况,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会很棒,我已经搜索了很多但没有找到答案

3 个答案:

答案 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