C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: 選択したアイテムによって別のコンボボックスのアイテムを変更し


(過去ログ 173 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■99387 / inTopicNo.1)  選択したアイテムによって別のコンボボックスのアイテムを変更し
  
□投稿者/ はにわ (1回)-(2022/03/29(Tue) 18:21:26)

分類:[C#] 

2つのコンボボックスを使って
・1つ目のコンボボックスでカテゴリーを選択して
・2つ目のコンボボックスのアイテムに、1つ目で選択したデータに関連するアイテムのみを設定
というのをしたいです。
Dictionaryを使えばいいのかと思って試みましたがうまくいきません。

comboBox1にカテゴリー表示はできました。
しかし、どのカテゴリを選択しているのかを確認する方法がわかりません。
どうすればいいのでしょうか?
よろしくお願いします。
また、このやり方であっているのでしょうか?

private readonly Dictionary<string, string[]> itemDict = new Dictionary<string, string[]>
{
{ "やさい", new string[] { "キャベツ", "ニンジン" } },
{ "くだもの", new string[] { "リンゴ", "バナナ" } },
{ "さかな", new string[] { "サンマ", "アジ" } }
};

public Form1()
{
InitializeComponent();
  comboBox1.Items.AddRange(itemDict.Keys.ToArray());
}

private void comboBox1_TextChanged(object sender, EventArgs e)
{
comboBox2.Items.Clear();

  // ↓ここがわかりません。
if (!string.IsNullOrEmpty() && itemDict.ContainsKey())
{
comboBox2.Items.AddRange(itemDict[]);
}
}

visual studio 2019
フォームアプリケーションで作成
引用返信 編集キー/
■99388 / inTopicNo.2)  Re[1]: 選択したアイテムによって別のコンボボックスのアイテムを変更し
□投稿者/ furu (151回)-(2022/03/29(Tue) 18:40:18)
No99387 (はにわ さん) に返信

> 	  // ↓ここがわかりません。
>             if (!string.IsNullOrEmpty() && itemDict.ContainsKey())
>             {
>                 comboBox2.Items.AddRange(itemDict[]);
>             }
>         }
↑これで正解ですよ。

if (!string.IsNullOrEmpty(comboBox1.Text) && itemDict.ContainsKey(comboBox1.Text))
{
    comboBox2.Items.AddRange(itemDict[comboBox1.Text]);
}

引用返信 編集キー/
■99389 / inTopicNo.3)  Re[2]: 選択したアイテムによって別のコンボボックスのアイテムを変更し
□投稿者/ はにわ (2回)-(2022/03/29(Tue) 18:50:58)
No99388 (furu さん) に返信

>
> if (!string.IsNullOrEmpty(comboBox1.Text) && itemDict.ContainsKey(comboBox1.Text))
> {
> comboBox2.Items.AddRange(itemDict[comboBox1.Text]);
> }

comboBox1.Textをそのまま引数にすればよかったのですね。
ありがとうございました。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -