Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem Combobox C# -> Skrytí určitých položek

Zdravím,

Chtěl bych se zeptat, zda-li nejde nějak skrýt položky v comboboxu.

Mám 20 comboboxů, v každém je celá abeceda a já potřebuji, aby vždy v následujícím comboboxu se skrylo to písmeno, které už bylo použito, ale aby to nebylo tak jednoduché, tak když se to písmeno uvolní, tak se v ostatních comboboxech zase musí objevit. (prostě každé písmeno může být využito maximálně jednou a 5 písmen zůstane volných)

Napadlo mě to přes index, se mi to nedaří udělat.

Předem děkuji za jakékoliv rady a tipy

Jsou zobrazeny jen nové odpovědi. Zobrazit všechny
Předmět Autor Datum
public partial class Form1 : Form { private string letters = "ABCDEFGHIJKLMNOQRSTUV"; public Form1(… poslední
BěžnýUživatel 21.05.2017 23:23
BěžnýUživatel
    public partial class Form1 : Form
    {
        private string letters = "ABCDEFGHIJKLMNOQRSTUV";

        public Form1()
        {
            InitializeComponent();
            FillComboBoxes();
        }

        private void FillComboBoxes()
        {
            foreach (MyComboBox cb in Controls)
            {
                foreach (char c in letters)
                {
                    cb.Items.Add(c);
                }
            }
        }

        private void LetterChanged(object sender, EventArgs e)
        {
            MyComboBox comboBox = (MyComboBox)sender;
            char letter = (char)comboBox.SelectedItem;

            foreach (MyComboBox cb in Controls)
            {
                if (cb == sender)
                    continue;

                if (comboBox.PreviousLetter != '\0')
                    cb.Items.Insert(letters.IndexOf(comboBox.PreviousLetter), comboBox.PreviousLetter);

                cb.Items.Remove(letter);
            }

            comboBox.PreviousLetter = letter;
        }
    }

    public class MyComboBox : ComboBox
    {
        public char PreviousLetter { get; set; }
    }

V designeru (Form.designer.cs) si přepíšeš třídu ComboBox na třídu MyComboBox a přidáš EventHandler pro SelectedIndexChanged na metodu LetterChanged.

Zpět do poradny Odpovědět na původní otázku Nahoru