如何从组合框c#中获取值?

时间:2011-03-14 07:51:58

标签: c# visual-studio-2010 combobox checkbox

我对C#有点新鲜,所以请耐心等待这个......

好的,所以你右键单击一个comboBox,选择编辑项目,你可以添加字符串到comboBox。我的问题是,如何设置这些字符串的值?我想使用'if'语句来说明当前是否选择了某个字符串。

所以我有5个组合框。选中复选框后,所有复选框都会显示“完整”。如果其中一个值更改为其他值,则我需要选中其他复选框。但由于组合框中的字符串没有值,我无法弄清楚如何使用它们。

重申一下,我如何设置组合框中字符串的值,以便在'if'语句中使用它们。

编辑:这是一个Windows窗体。

2 个答案:

答案 0 :(得分:0)

嗯,最简单的方法:

Combobox.Items.Add("New string");

更复杂的方法是创建一个数组或字符串列表,并将它们作为数据源一次性添加:

var listOfStrings = new List<string>();
Combobox.Datasource = listOfStrings;

无论您选择何种方式,您都将编辑ComboBox项目的集合。

PS那是Winforms。

答案 1 :(得分:0)

检查Text属性的文本。

假设你的ComboBox在cmb [5]中,你的复选框是chk:

private ComboBox[] cmb;

private void init()
{
    cmb = new ComboBox[5];
    for (int i = 0; i < 5; i++)
    {
        ComboBox c = new ComboBox();
        Controls.Add(c);
        // TODO: Populate c with the relevant data
        c.TextChanged += new EventHandler(c_TextChanged);
    }
    chk.CheckedChanged += new EventHandler(chk_CheckedChanged);
}

void chk_CheckedChanged(object sender, EventArgs e)
{
    foreach (ComboBox c in cmb)
        c.Text = "Full";
}

void c_TextChanged(object sender, EventArgs e)
{
    foreach (ComboBox c in cmb)
    {
        if (c.Text != "Full") return;
    }
    chk.Checked = false;
}

或者,init可以是:

private void init()
{
    cmb = new ComboBox[5];
    cmb[0] = comboBox1;
    cmb[1] = comboBox2;
    cmb[2] = comboBox3;
    cmb[3] = comboBox4;
    cmb[4] = comboBox5;
    foreach (ComboBox c in cmb)
        c.TextChanged += new EventHandler(c_TextChanged);
    chk.CheckedChanged += new EventHandler(chk_CheckedChanged);
}