Разрешить ограниченный выбор CheckBox в C#

Обычно пользователь может проверить или снять флажок CheckBox независимо от других параметров. Это сообщение показывает, как вы можете разрешить ограниченный выбор CheckBox. В этом примере пользователь может выбрать до 2 из CheckBox es.

Всякий раз, когда пользователь нажимает CheckBox, вы можете просмотреть CheckBox es и убедиться, что выбраны только два. К сожалению, это потребует от пользователя выбора опций в определенном порядке. Например, если вы просто выполнили последовательность CheckBox в порядке и сохранили первые два варианта, тогда пользователю будет сложно сделать выбор позже в списке.

В этом примере используется другой подход, позволяющий ограничить выбор CheckBox. Он сохраняет список выбранных CheckBox. Когда вы делаете новый выбор, программа просматривает список и отменяет выбор самого старого. Таким образом, пользователь может сделать выбор в любом порядке и сохранить последние варианты.

Все CheckBox es используют следующий обработчик событий для управления выборами.

// Выбранные CheckBoxes.
private int NumAllowedOptions = 2;
private List Selections = new List();

// Удостоверьтесь, что у нас не так много вариантов.
private void chkOption_CheckedChanged(object sender, EventArgs e)
{
    CheckBox chk = sender as CheckBox;
    if (chk.Checked)
    {
        // Добавьте этот выбор.
        Selections.Add(chk);

        // Удостоверьтесь, что у нас их слишком много.
        if (Selections.Count > NumAllowedOptions)
        {
            // Удалить самый старый выбор.
            Selections[0].Checked = false;
        }
    }
    else
    {
        // Удалить этот выбор.
        Selections.Remove(chk);
    }
}

В списке Selections содержится текущий флажок CheckBox.

Когда пользователь проверяет или снимает флажок, обработчик события обновляет список. Если отмечен CheckBox, код добавляет его в список. Если число CheckBox es в списке больше допустимого числа (2 в этом примере), программа отменяет CheckBox, который был в списке самым длинным. (Это вызывает обработчик события CheckedChanged этого элемента управления, который делает следующий код удаляемым из списка.)

Источник: http://csharphelper.com/blog/2015/10/allow-limited-checkbox-selection-in-c/

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Adblock
detector