-1

私はcombobox1と言うコンボボックスを持っています。4つのアイテムがあります。アイテムを選択するたびに、ラベルテキストのcombobox1で選択したテキストを取得したいと思います。次のコードを使用してこれを実行しようとしましたが、機能しません。

cntは、combobox1内のアイテムの数を指します。lbはラベルのオブジェクトです。

助けてください..

for (int i = 1; i <= cnt; i++)
{
    lb.Text = comboBox1.Items[i].ToString();
}
4

3 に答える 3

2

どうですか

private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            lb.Text = comboBox1.Text;
        }
于 2013-03-12T07:34:23.080 に答える
1

コードに複数の問題があります。

  1. インデックスはゼロベースです(少なくともC#ではそうです)。つまり、forループはで開始する必要があります。で開始する必要は0ありません1
  2. forループの各反復でラベルのText値を上書きしていますが、これは意味がありません。代わりにDebug.PrintSystem.Diagnostics名前空間)を使用して、コンボボックスアイテムのすべての値を表示します。
  3. コンボボックス内のアイテムが選択されると、ラベルの値が更新されるイベントを利用する必要があります。コンボボックスのイベントのリストについては、次のURLを参照してください:http://msdn.microsoft.com/en-us /library/system.windows.forms.combobox.aspx。コードでイベントにハンドラーをアタッチするか、VisualStudioのGUIデザイナーでハンドラーをアタッチします。通常、SelectedIndexChangedイベントを使用します:http: //msdn.microsoft.com/en-us/library/system.windows.forms.combobox.selectedindexchanged.aspx
  4. コンボボックス内のアイテムが、を実装するオブジェクトタイプであることを確認してくださいToString()。そうしないと、コンボボックスに何も表示されません。
  5. 現在のforループlb.Text = comboBox1.Items[comboBox1.Items.Count].ToString();は、forループの最後の反復で実行したいと考えています。これにより、次のようになります:http IndexOutOfRangeException: //msdn.microsoft.com/en-us/library/system.indexoutofrangeexception.aspx
于 2013-03-12T07:50:47.730 に答える
0

次のコードを試してください。

for (int i = 0; i < cmbTest.items.count; i++)
{
    label1.text = cmbTest.SelectedItem[i].toString();

}
    //Or
    label1.text = cmbTest.Text;

    //Or
    label1.text = cmbTest.selectedValue;
于 2013-03-12T07:35:21.223 に答える