アプリ版:「スタンプのみでお礼する」機能のリリースについて

C#でCombBoxを使い、ドロップダウンリスト(追加リスト)を追加していくプログラムを作成しています。
追加と削除ボタンを用意し、コンボボックスで入力したものをドロップダウンしたときに追加していき、削除ボタンでは追加したものを消します。
そこまではできたのですが、その後の問題がわかりません。

①既に追加されているものは追加できないよう、追加のボタンを押せないようにする。
②追加のリストが10個以上になったら追加ボタンが押せなくなるようにする。
③追加リストにないものは削除ボタンを押せないようにする。
④追加リストに一つも追加されていない場合削除ボタンを押せないようにする。

以上の4つのプログラムをどう作成したらよいかわかりません。
どのイベントを使えばいいかもわからない状態です。
一つでも分かる方教えていただきたいです!!

A 回答 (2件)

>>①既に追加されているものは追加できないよう、追加のボタンを押せないようにする。



 ボタンを押せないようにする処理は、極めて一般的なものです。それと同じ方法を実行すればいいのでは?
 
②追加のリストが10個以上になったら追加ボタンが押せなくなるようにする。

 上記と同様です。

>>③追加リストにないものは削除ボタンを押せないようにする。

 追加リストにないものを選んだときに、上記と同様な処理をすればいいのでは?

>>④追加リストに一つも追加されていない場合削除ボタンを押せないようにする。

これも同様では?
    • good
    • 0
この回答へのお礼

ありがとうございました(*'ω'*)

お礼日時:2016/10/13 12:09

イベントについては自信なしですが、以下のようになるかと・・・


----------------------------------------------
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
//ボタン設定
set_buttons();
}

private void comboBox1_TextChanged(object sender, EventArgs e)
{
//ボタン設定
set_buttons();
}
//ボタン設定処理(自前の処理)
private void set_buttons()
{
if (comboBox1.Items.Contains(comboBox1.Text) == true)
{
button1.Enabled = false; //追加ボタン
button2.Enabled = true; //削除ボタン
}
else
{
button1.Enabled = true;
button2.Enabled = false;
}
if (comboBox1.Items.Count >= 10)
{
button1.Enabled = false; //追加ボタン
}
if (comboBox1.Items.Count == 0)
{
button2.Enabled = false; //削除ボタン
}
}

//追加ボタン
private void button1_Click(object sender, EventArgs e)
{
if (System.Text.RegularExpressions.Regex.IsMatch( comboBox1.Text,@"^\s*$"))
{
return;
}
comboBox1.Items.Add(comboBox1.Text);
comboBox1.Text = "";
}
//削除ボタン
private void button2_Click(object sender, EventArgs e)
{
comboBox1.Items.Remove(comboBox1.Text);
comboBox1.Text = "";
}
----------------------------------------------------
comboBox1_SelectedIndexChanged
comboBox1_TextChanged
で、コンボボックスのテキストの変更を拾っています。

追加、削除ボタンクリックで、リストの追加・削除を行いますが、
その後、Textをクリアしています。(comboBox1_TextChangedを拾う為の保険です)
追加ボタンで、空白が登録できてしまうので、空白の場合は、追加しないようにしています。
    • good
    • 0
この回答へのお礼

わざわざ長いプログラムを作成していただき本当にありがとうございました!
分かりやすく、私もプログラムが作成することができました!
こんなはやく回答してくださり、正確で尊敬します(;ω;)
お時間さいてくださりありがとうございました!

お礼日時:2016/10/13 12:14

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!