Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
@LiteRa
Revisions
Report this question
Subscribe question
Help us understand the problem. What is going on with this question?
Q&A

[C#] WindowsForm / Comboobox(複数) 選択された値は非表示にしたい 

[C#] WindowsForm / Comboobox(複数) 選択された値は非表示にしたい 

WindowsForm(C#)で複数のコンボボックスに共通のItemを設定して、
あるコンボボックスがItemのうちの一つを選択したら、
その他のコンボボックスは選べないように非表示にしたいです。

items = 1~10までの半角英数字を設定
グループボックス = 10個

よろしくお願いします

0
3
Answer

Disabling particular Items in a Combobox

回答を見る限り気合対処しかない模様

0

質問者の意図通りかどうかわかりませんが、
複数のコンボボックス(comboBox1~3)のうち、
何れかで値が選択されると、他のコンボボックスが非表示になるサンプルです。

サンプル
private void Form1_Load(object sender, EventArgs e)
{
    // items
    var items = new List<int>() { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };

    // コンボボックスにitemsをセット
    comboBox1.DataSource = items.ToArray();
    comboBox2.DataSource = items.ToArray();
    comboBox3.DataSource = items.ToArray();

    // SelectedIndexChangedで同じメソッドを呼ぶよう設定
    comboBox1.SelectedIndexChanged += new EventHandler(this.comboBox_SelectedIndexChanged);
    comboBox2.SelectedIndexChanged += new EventHandler(this.comboBox_SelectedIndexChanged);
    comboBox3.SelectedIndexChanged += new EventHandler(this.comboBox_SelectedIndexChanged);
}

private void comboBox_SelectedIndexChanged(object sender, EventArgs e)
{
    foreach (Control control in this.Controls)
    {
        if (control is ComboBox)
        {
            if (!control.Equals(sender))
            {
                control.Visible = false;
            }
        }
    }
}

0

文章に意味不明なところがあるので無理矢理解読すると、

  • いくつかのコンボボックスがあり、それぞれ1~10の数字がitemとしてセットされている
  • あるコンボボックスで数字を選択すると、他のコンボボックスでは選ばれた数字を選択肢(item)から外したい

といった意味でしょうか?

@Yamazin さんのは「選択されたコンボボックス以外のコンボボックスを画面から消し去る」というコードです。
書かれている文を素直に解釈すればそうなります。

あと、

グループボックス = 10個

が意味不明です。そこまでの説明にはないグループボックスのことに突然触れても、前の文とどう関係するのかわかりません。
WindowsFormsにはGroupBoxというコントロールが存在しますが、それを指しているのか別のものを自己流でグループボックスと呼んでいるだけなのかどちらでしょう?

0
Help us understand the problem. What is going on with this answer?
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login