C#上的comboBox值和textBox值出现问题

时间:2013-03-18 10:20:44

标签: c#

我是c#的初学者,我真的需要一些线索来解决这个问题。

我在c#中创建了一个项目,在一种形式中,我有comboBox,其值为9-20和textBox之间的数字。

我想要的只是每当选择ComboBox时,TextBox将被设置为ComboBox值加1。 例如:如果选择了ComboBox1且值为11,则TextBox1.Text将设置为12.

这是我一直在努力的代码。

private void comboBox1_SelectedIndexChanged(object sender, EventArgs e
{
    textBox1.Text = comboBox1.SelectedIndex.ToString() +1;
}

代码没有任何问题,但我没有得到我想要的值,因为结果就像是选择了comboBox,值为11,而textBox1.Text是21,而不是12。

之前的事情:)

3 个答案:

答案 0 :(得分:7)

您必须先将ComboBox.SelectedValue转换为int
然后加1和
然后将其转换为String

private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
   textBox1.Text = Convert.ToString(Convert.ToInt16(comboBox1.SelectedValue) + 1);
}



修改:

如果您正在开发 Windows窗体应用程序,请尝试以下操作:

private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
    textBox1.Text = Convert.ToString(Convert.ToInt16(comboBox1.SelectedItem) + 1);
}

答案 1 :(得分:2)

.ToString()将所选索引转换为string类型。加法运算符(+)将整数1转换为字符串"1",只需将数字1附加到文本中即可。相反,您应该将SelectedIndex保留为整数,执行添加,然后转换为字符串。

尝试以下方法:

textBox1.Text = (comboBox1.SelectedIndex + 1).ToString();

答案 2 :(得分:0)

您可能需要使用SelectedValue而不是SelectedIndex,因为前者获取组合框项目的实际值,而后者获取组合框中项目的索引。

private void comboBox1_SelectedIndexChanged(object sender, EventArgs e
{
    textBox1.Text = ((int)comboBox1.SelectedValue + 1).ToString();
}