Добавление выбранного переключателя, который находится в групповом поле в списке

У меня есть групповое поле с различными переключателями, и моя цель - добавить выбранный элемент из группового поля в список.

Это, вероятно, не самый эффективный способ, но как я это настроил прямо сейчас, так это то, что я создал список писем, так что при выборе определенного радиокнопки элемент добавляется в буквы списка. Затем, используя этот список, я хочу добавлять его в список при каждом нажатии кнопки.

Вот что я начал заполнять буквами Списка:

private List<string> AddAllGrades()
{
    if (radA.Checked)
    {
        //add the checked radiobutton into List<int> letGrade
        allGrades.Add("A");
    }
    else if (radB.Checked)
    {
        //add the checked radiobutton into List<int> letGrade
        allGrades.Add("B");
    }
    else if (radC.Checked)
    {
        //add the checked radiobutton into List<int> letGrade
        allGrades.Add("C");
    }
    else if (radD.Checked)
    {
        //add the checked radiobutton into List<int> letGrade
        allGrades.Add("D");
    }
    else if (radF.Checked)
    {
        allGrades.Add("F");
    }
    return allGrades;
}

Добавление элементов allGrades всякий раз, когда происходит изменение в событии группового поля:

private void gbGrade_Enter(object sender, EventArgs e)
{
    radA.AutoCheck = true;
    radB.AutoCheck = true;
    radC.AutoCheck = true;
    radD.AutoCheck = true;
    radF.AutoCheck = true;
    lstDetail.Items.AddRange(allGrades.ToArray());
}

Добавление элементов группового поля в список:

private void btnEnter_Click(object sender, EventArgs e)
{
    /*if grades and credits are not selected, Error Message:
        * MessageBox.Show("A grade must be selected.");
        * MessageBox.Show("Credit hours must be selected.");
    */
    if (!(radA.Checked || radB.Checked || radC.Checked ||
        radD.Checked || radF.Checked))
    {
        MessageBox.Show("A grade must be selected.");
    }           

    if (cboCreditHrs.SelectedIndex == -1)//if" no credit is selected
    {
        MessageBox.Show("Credit hours must be selected.");
    }
    else
    {
        lstDetail.Items.AddRange(AddAllGrades().ToArray());
    }

Примечание: на данный момент третий метод полностью не работает. Я уверен, что есть более эффективный способ сделать это, но я не могу этого понять. Я также пытаюсь объединить этот список оценок с другим списком, чтобы его элементы можно было вводить в список в более удобном формате.

В чем проблема?

Aleksa Ristic 26.09.2018 19:39

Я думаю, что мой синтаксис в gbGrade_Enter неверен. Кроме того, выбранная радиокнопка не очищается после проверки каждого элемента.

Pinkfit 26.09.2018 22:09

Кроме того, я уверен, что есть лучший способ добавить выбор переключателя в список без необходимости создавать несколько методов, как я показал?

Pinkfit 26.09.2018 22:20

Зачем нужен список строк? каждый раз можно выбрать только один radbutton, поэтому вы будете добавлять одну букву в список каждый раз, когда нажимаете btnEnter.

γηράσκω δ' αεί πολλά διδασκόμε 27.09.2018 00:46
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
4
898
2

Ответы 2

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

Я не знаю, зачем вам нужен список для переключателей, но если вам нужно, я думаю, вы можете использовать это вместо этого. Конечно, если ваш radioaButtons содержит только буквы (A, B, C, D) и т. д.

private List<string> AddAllGrades()
    {
    foreach (RadioButton rad in groupBox1.Controls)
                {
                    if (rad.Checked)
                        allGrades.Add(rad.Text);
                }
                return allGrades;
    }

если нет, вы можете поместить букву в свойство тега и изменить rad.Text на rad.Tag.ToString ()

Другие вопросы по теме