2009-06-30 3 views
0

プログラムがロードされると、レジストリから値を読み込み、読み込み専用のコンボボックスをその値に設定しますが、コンボボックスはそのコンボボックスの前にアイテムを表示します。私はテキストを設定するために、以下のコードを使用しています。C#フォームロード時にコンボボックステキストを設定する

RegistryKey OurKey = Registry.CurrentUser; 
OurKey = OurKey.OpenSubKey("Software\\test",true); 
type = OurKey.GetValue("Type").ToString(); 
cboType.Text = type; 

コンボボックスをレジストリから読み取った値に設定する方法を教えてください。あなたはアイテムのコレクションにそれを追加することができ

おかげ

答えて

0

int index = cboType.Items.IndexOf(type); 
if (index < 0) 
{ 
    cboType.Items.Insert(0, type); 
    cboType.SelectedIndex = 0; 
} 
else 
    cboType.SelectedIndex = index; 
+0

こんにちは、その値は既に商品コレクションに入っていますが、あなたのコードはどのように違うのですか? –

+0

テキストプロパティを設定すると、コレクションから適切なアイテムが選択されるとは限りません。したがって、 'type'がコレクション内にあり、コンボボックスが読み取り専用の場合は、TextではなくSelectedIndexを設定する方がよいでしょう。 – arbiter

1

あなたはそれで値を見つけるには、それのインデックスから返されたリスト項目を選択し、テキスト値だ、と:

RegistryKey OurKey = Registry.CurrentUser; 
OurKey = OurKey.OpenSubKey("Software\\test",true); 
type = OurKey.GetValue("Type").ToString(); 

ListItem selectItem = new ListItem(); 
selectItem = cboType.Items.FindByText(type); 

if (selectItem != null) 
{ 
    cboType.SelectedIndex = cboType.Items.IndexOf(selectItem); 
} 
関連する問題