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.