今回はTryGetValueを使用し、Visual C#のコンボボックスの入力値を確認する方法について解説していきます。コンボボックスを使用している時にエラーが発生したり、入力値の監視方法について悩んでいる方、読んで見てください。その悩みが解決します。
このような人におすすめ
・コンボボックスを使用し、エラーKeyNotFoundExceptionが発生する。
・コンボボックスの入力値を確認する処理の仕方がわからない人。
エラーKeyNotFoundExceptionはDictionaryクラスのkeyと一致する値がない場合、発生します。TryGetValueメソッドを使用することでエラー発生を防ぐことができます。
TryGetValueメソッドの使い方
TryGetValueメソッドは以下の様になります。引数はKey、valueです。
public bool TryGetValue(key, out value)
引数keyに代入された値とDictionaryクラスのkeyを比較し、比較結果によって動作が変化します。
・一致した場合、TRUEを返し、引数valueにDictionaryクラスのvalueの値が代入されます。
・一致しなかった場合、FALSEを返します。
例題
例を作成し、本題の「TryGetValueを使用し、Visual C#のコンボボックスの入力値を確認する方法」を説明していきます。作成するアプリはコンボボックスで商品を選択し、ボタンを押すと値段が表示されるアプリです。
Fromを用意し、コンボボックス、ボタンの配置
Fromを作成し、真ん中にコンボボックス、右下にボタンを配置します。コンボボックスの名前をproduct_displayに変更します。ボタンの名前をproduct_price_button、表示を値段確認に変更します。
コード内部の処理を実装
product_price_buttonのプロパティを選択し、クリック時のメソッドを作成します。メソッド名はproduct_price_button_clickです。
Dictionaryクラスを作成します、Keyに「かけうどん」、「カレーうどん」、「肉うどん」の3つを設定し、Valueにうどんの値段として「400円」、「600円」、「550円」を設定します。コンボボックスの要素にKeyの値を追加していきます。
product_price_buttonがクリックされた時の処理を作成します。コンボボックスのテキストを確認し、商品名と一致する場合は商品を表示させます。一致しない場合、入力エラーを表示させます。TryGetValueメソッドがなしでDictionaryクラスに登録されてないkeyが入力されていない場合、エラーKeyNotFoundExceptionが発生します。
private Dictionary<string, string> udon_price;
public Form1()
{
InitializeComponent();
//Dictionaryクラスを作成し、商品名と値段を代入
this.udon_price = new Dictionary<string, string>();
this.udon_price.Add("かけうどん" , "300円");
this.udon_price.Add("きつねうどん", "450円");
this.udon_price.Add("かまたまうどん" , "450円");
//product_displayのアイテムに登録
foreach(KeyValuePair<string, string> data in this.udon_price)
{
product_display.Items.Add(data.Key);
}
}
//ボタンクリック時の処理
private void product_price_button_click(object sender, EventArgs e)
{
string price = "";
if (udon_price.TryGetValue(product_display.Text, out price))
{
MessageBox.Show(product_display.Text + "は" + price + "です。", "値段表示", MessageBoxButtons.OK);
}
else
{
MessageBox.Show("商品を選択してください", "入力エラー", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}
コンボボックスの入力をチェックし、うどんの値段を表示
デバックを開始します。かけうどんを選択し、ボタンを押すとかけうどんの値段が表示します。
コンボボックスの表示を削除し、空白の状態でボタンを押します。入力エラー「商品を選択してください」と表示されます。登録されていない製品名を選択してもエラーKeyNotFoundExceptionがでなくなりました。
以上、Visual C#のコンボボックスの入力値をTryGetValueを使用し確認する方法の話でした。