-3

私はC#の初心者で、この問題を解決する方法の手がかりが本当に必要です。

私はc#で1つのプロジェクトを作成しました.1つのフォームでは、値が9〜20の数字とテキストボックスのコンボボックスがあります。

私が望むのは、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 が 12 ではなく 21 である場合のような結果が得られたためです。

前にthx :)

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型に変換します。加算演算子 ( ) は整数を stringに+変換し、単に数字の 1 をテキストに追加します。代わりに、を整数として保持し、加算を実行してから文字列に変換する必要があります。1"1"SelectedIndex

次のことを試してください。

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

于 2013-03-18T10:22:03.917 に答える
0

前者はコンボ ボックス項目の実際の値を取得し、後者はコンボ ボックス内の項目のインデックスを取得するため、おそらく使用する必要はありませんSelectedValueSelectedIndex

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