-3

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

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

all i want is whenever ComboBox is selected, then TextBox will be set to ComboBox value plus 1. for example: If ComboBox1 is selected and the value is 11, then TextBox1.Text will be set to 12.

这是我一直在处理的代码。

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

代码没有问题,但我没有得到我想要的值,因为结果就像选择了值 = 11 的组合框,并且 textBox1.Text 是 21,而不是 12。

谢谢之前:)

4

3 回答 3

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);
}
于 2013-03-18T10:25:02.247 回答
2

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

尝试以下操作:

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

于 2013-03-18T10:22:03.917 回答
0

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

private void comboBox1_SelectedIndexChanged(object sender, EventArgs e
{
    textBox1.Text = ((int)comboBox1.SelectedValue + 1).ToString();
}
于 2013-03-18T10:22:29.967 回答