我是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。
之前的事情:)答案 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();
}