Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/18: Рейтинг темы: голосов - 18, средняя оценка - 4.83
0 / 0 / 0
Регистрация: 08.06.2017
Сообщений: 32
1

Radiobutton и case

24.06.2017, 15:08. Показов 3500. Ответов 11
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
имеется форма. на ней 2 groupbox с radiobutton. нужно чтобы, в зависимости от выбранных radiobutton, переменным присваивалось определенное значение и выводились в label.

вот код:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
 
namespace _111
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        double R1;
        double R2;
 
        private void button1_Click(object sender, EventArgs e)
        {
           RadioButton radioBtn = new RadioButton();
            if (radioBtn.Checked == true)
            {
                switch (radioBtn.Name)
                {
                    case "radioButton1":
                        R1 = 1;
                        break;
                    case "radioButton2":
                        R1 = 2;
                        break;
                    case "radioButton3":
                        R1 = 3;
                        break;
                    }
            }
            RadioButton radioBtn1 = new RadioButton();
            if (radioBtn1.Checked == true)
            {
                switch (radioBtn1.Name)
                {
                    case "radioButton1":
                        R2 = 1;
                        break;
                    case "radioButton2":
                        R2 = 2;
                        break;
                    case "radioButton3":
                        R2 = 3;
                        break;
                }
 
            }
            label1.Text = R1.ToString() + " и " + R2.ToString();
        }
    }
}
в результате выдает, что переменные равны 0.
где ошибка?
Миниатюры
Radiobutton и case  
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.06.2017, 15:08
Ответы с готовыми решениями:

Как через Select Case выставить условия для Checked RadioButton()
Всем привет! начал осваивать Visual Studio 2010 с языком Basic, начал писать свою первую...

Достать из имени radioButton(x) его последнюю(ие) цифры и добавить их в if (radioButton(x).Checked)
Добрый день! Предыстория: Есть программа WinForm, на ней есть 77 radioButton. Имена у них от...

если кликнули на первый radiobutton то в переменную $rb заносится значения выбраного radiobutton и выводится
как воплотить в жизнь такое: имеется 2 radiobutton;(круглые флажки) если кликнули на первый...

Как сделать чтобы после нажатия RadioButton в Label2 автоматически вносилось произведение RadioButton на Label1
Как сделать чтобы после нажатия RadioButton в Label2 автоматически вносилось произведение...

11
134 / 129 / 59
Регистрация: 16.06.2013
Сообщений: 523
24.06.2017, 15:20 2
Лучший ответ Сообщение было отмечено fire1305 как решение

Решение

fire1305, в том, что вместо проверки имени кнопки от которой пришёл сигнал, вы создаёте новую, и её уже тестите.
Я бы посоветовал сделать так - создать 2 переменных, для хранения имени выделенной в данный момент кнопки, привязать к каждой группе по одному событию клика, и в нём уже обрабатывать.
Примерно так:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
       /// <summary>
        /// НАзвание выделенной кнопки из первой группы
        /// </summary>
        string group1Name;
        /// <summary>
        /// НАзвание выделенной кнопки из второй группы
        /// </summary>
        string group2Name;
 
        /// <summary>
        /// Инициализация обработчиков кнопок
        /// </summary>
        private void init()
        {
            //Вписываем при инициализации значения выбранных по дефолту кнопок
            group1Name = "radioButton1";
            group2Name = "radioButton4";
 
            //Инициализация выбора для первой группы
            radioButton1.CheckedChanged += rb_group1_check;
            radioButton2.CheckedChanged += rb_group1_check;
            radioButton3.CheckedChanged += rb_group1_check;
 
            //Инициализация выбора для второй группы
            radioButton4.CheckedChanged += rb_group2_check;
            radioButton5.CheckedChanged += rb_group2_check;
            radioButton6.CheckedChanged += rb_group2_check;
        }
 
        /// <summary>
        /// Выбор кнопки в первой группе
        /// </summary>
        private void rb_group1_check(object sender, EventArgs e)
        {
            group1Name = ((RadioButton)sender).Name;
        }
 
        /// <summary>
        /// Выбор кнопки во второй группе
        /// </summary>
        private void rb_group2_check(object sender, EventArgs e)
        {
            group2Name = ((RadioButton)sender).Name;
        }
А, потом, по клику кнопки сравнивать уже значения переменных group1Name и group2Name.
P.S. Если что, функцию init(); добавить в инициализатор формы.
C#
1
2
3
4
5
public Form1()
{
            InitializeComponent();
            init(); 
}
1
0 / 0 / 0
Регистрация: 08.06.2017
Сообщений: 32
24.06.2017, 21:35  [ТС] 3
спасибо. все получилось.
еще один вопросик: при запуске формы radibutton1 всегда отмеченный. как сделать, чтобы все radiobutton были не отмеченные?
0
134 / 129 / 59
Регистрация: 16.06.2013
Сообщений: 523
24.06.2017, 21:42 4
fire1305, хм, проверил. У меня они все неактивны по умолчанию при запуске. Не знаю... Попробуй их удалить ,и снова воткнуть, возможно ты что-то в их настройках накрутил.
0
0 / 0 / 0
Регистрация: 08.06.2017
Сообщений: 32
24.06.2017, 21:57  [ТС] 5
в новом проекте тоже самое.
0
134 / 129 / 59
Регистрация: 16.06.2013
Сообщений: 523
24.06.2017, 21:59 6
fire1305, о как... Скинь пожалуйста проэкт. Я посмотрю что там и как.
0
0 / 0 / 0
Регистрация: 08.06.2017
Сообщений: 32
24.06.2017, 22:10  [ТС] 7
вот
Вложения
Тип файла: rar 321.rar (39.2 Кб, 53 просмотров)
0
134 / 129 / 59
Регистрация: 16.06.2013
Сообщений: 523
24.06.2017, 22:16 8
fire1305, Короче, знаю, что это идиотизм, но всё же. Проблема в том ,что у тебя этот гроупбокс по дефолту выделен при загрузке формы, вот и идёт вылеление элемента. Решение вот какое - поставить Tabindex у кнопки в 0, а у GroupBox1 в 2. Тогда выделения не будет.
1
0 / 0 / 0
Регистрация: 08.06.2017
Сообщений: 32
24.06.2017, 23:06  [ТС] 9
Захарка, сработало. спасибо огромное!
0
89 / 77 / 38
Регистрация: 11.10.2015
Сообщений: 860
06.03.2018, 16:40 10
Всем привет. Дабы не плодить темы... Чет не могу простую вещь побороть.
Четыре радиобатона сгруппированы в один контейнер. Мне необходимо при изменения выбора каждого, просто выводить модальное окошко. Как можно привязаться одним событием к группе радиобатонов.
Если сделать как тут предлагали. То окошко нормально открывается, закрываешь его, а оно второй раз без чека появляется. В общем по событию оно два раза вываливается.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
     /// <summary>
        /// Инициализация обработчиков кнопок
        /// </summary>
        private void init()
        {
            //Инициализация выбора для первой группы
            radioButton1.CheckedChanged += rb_group1_check;
            radioButton2.CheckedChanged += rb_group1_check;
            radioButton3.CheckedChanged += rb_group1_check;
            radioButton4.CheckedChanged += rb_group1_check;
        }
 
        /// <summary>
        /// Выбор кнопки в первой группе
        /// </summary>
        private void rb_group1_check(object sender, EventArgs e)
        {
            MessageBox.Show("Hi");
        }
Миниатюры
Radiobutton и case  
0
134 / 129 / 59
Регистрация: 16.06.2013
Сообщений: 523
06.03.2018, 16:47 11
Jman, А, ответ простой. Событие какое? "CheckedChanged"! Таким образом, если выделен хоть 1 радиобаттон, он и будет вызываться 2 раза - 1 раз, когда будет сброшен чек на элементе, который был выделен, а второй раз - когда будет проставлен на свежевыделенном элементе чек. Таким образом, решение простое:
C#
1
2
3
4
5
6
7
8
        private void rb_group1_check(object sender, EventArgs e)
        {
            //Получаем радиобаттон, который был изменён
            RadioButton rb = (RadioButton)sender;
            //Проверяем тип изменения. Нам нужна только установка чека.
            if(rb.Checked)     
                        MessageBox.Show("Hi");
        }
1
89 / 77 / 38
Регистрация: 11.10.2015
Сообщений: 860
06.03.2018, 16:49 12
Цитата Сообщение от Захарка Посмотреть сообщение
Jman, А, ответ простой.
Вы правы. Мдаа, побуксовал на ровном месте... Спасибо большое!
0
06.03.2018, 16:49
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.03.2018, 16:49
Помогаю со студенческими работами здесь

Как сделать чтобы после нажатия RadioButton в Label2 автоматически вносилось произведение RadioButton на Label1
Как сделать чтобы после нажатия RadioButton в Label2 автоматически вносилось произведение...

Необходимо чтобы при нажатии radiobutton выходило следующее меню с текстом и несколькими radiobutton-ами
Всем привет,помогите нужен пример кода необходимо что бы при нажатии radiobutton выходило следующее...

не записывается значение radiobutton кроме первой radiobutton
На страницу из БД выводится вопросы и четыре ответа к вопросам(radiobutton-ы). Т.е....

Как сделать чтобы после нажатия RadioButton в одном из шести Radiogroop в edit1 автоматически вносилось значение radiobutton
Как сделать чтобы после нажатия RadioButton в одном из шести Radiogroop в edit1 автоматически...

в case 7 - нужно сделать поиск по номеру группы, а в case 6 сортировку по имени
Помогите пожалуйста: в case 7 - нужно сделать поиск по номеру группы, а в case 6 сортировку по...

чем use case отличается от business use case (только по русски объяснить и с примером)
_subj


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru