Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/40: Рейтинг темы: голосов - 40, средняя оценка - 4.75
6 / 6 / 3
Регистрация: 10.05.2013
Сообщений: 40

Разблокировка кнопки при выборе Radiobutton

25.04.2016, 13:30. Показов 7770. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть три радиобаттона, нужно чтоб кнопка была выключена, если ни один из них не выбран.

C#
1
2
3
4
5
6
7
8
9
10
11
radioButton1.Checked = radioButton2.Checked = radioButton3.Checked = false;
 
            if (radioButton1.Checked == true || radioButton2.Checked == true || radioButton1.Checked == true) 
            {
                button1.Enabled = true;
            }
 
            else
            {
               button1.Enabled = false;
            }
Вроде должно работать, но не работает. Блокирует кнопку намертво.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
25.04.2016, 13:30
Ответы с готовыми решениями:

Не работает if else при выборе RadioButton
пишу приложение, суть: при выборе радиобаттона должно выполнятся условие, но ни одно из условии не выпоплняется, что делаю не так ? ...

Изменение видимости TextBox при выборе CheckBox или RadioButton
Всем привет. Нужно сделать так: если выбран чек бокс (или Р.Б) то текст бокс становился видимым, а если нет - ставал не видимым. Знаю...

Как при выборе одного из элементов ComboBox сделать так, чтобы внизу появлялись перечень RadioButton?
Добрый вечер? Есть выпадающий список, как при выборе одного из вариантов сделать так, чтобы внизу появлялись перечень RadioButton? ...

12
 Аватар для Melif
76 / 67 / 47
Регистрация: 26.03.2015
Сообщений: 205
26.04.2016, 14:13
Используйте событие RadioButton.CheckedChanged

Подробнее:
Скажем, при инициализции формы делаете кнопку недоступной:
C#
1
2
3
4
5
public Form3()
        {
            InitializeComponent();
           button1.Enabled = false;
        }
А при изменении "выбранности" каждого радиобаттона делаете проверку и при необходимости меняете доступность кнопки:
C#
1
2
3
4
5
6
7
8
9
10
11
12
private void radioButton1_CheckedChanged(object sender, EventArgs e)
        {
            if (radioButton1.Checked == true || radioButton2.Checked == true || radioButton1.Checked == true)
            {
                button1.Enabled = true;
            }
 
            else
            {
                button1.Enabled = false;
            }
        }
0
103 / 104 / 54
Регистрация: 23.03.2016
Сообщений: 462
26.04.2016, 14:36
kioself, в чем код выполняется?

Melif,
C#
1
private void radioButton1_CheckedChanged(object sender, EventArgs e)
это нужно сделать для каждого радиобаттона, тогда уже
C#
1
2
3
4
5
6
7
8
9
if (radioButton1.Checked == true)
            {
                button1.Enabled = true;
            }
 
else
            {
                button1.Enabled = false;
            }
1
 Аватар для Melif
76 / 67 / 47
Регистрация: 26.03.2015
Сообщений: 205
26.04.2016, 15:02
Quat1111, ну да. Я и написал:
Цитата Сообщение от Melif Посмотреть сообщение
при изменении "выбранности" каждого радиобаттона
Просто код копировать три раза неохота было
1
103 / 104 / 54
Регистрация: 23.03.2016
Сообщений: 462
26.04.2016, 15:15
Melif, тогда тройное сравнение для каждого ни к чему
1
 Аватар для Melif
76 / 67 / 47
Регистрация: 26.03.2015
Сообщений: 205
26.04.2016, 15:16
Quat1111, согласен)
2
 Аватар для Hastin
40 / 32 / 7
Регистрация: 24.03.2016
Сообщений: 270
26.04.2016, 16:33
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
using System;
using System.Windows.Forms;
 
namespace WindowsF
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        private void Form1_Load(object sender, EventArgs e)
        {
            button1.Enabled = false;
            radioButton1.CheckedChanged += new EventHandler(change);
            radioButton2.CheckedChanged += new EventHandler(change);
            radioButton2.CheckedChanged += new EventHandler(change);
        }
        
        private void change(object sender, EventArgs e)
        {
            button1.Enabled = true;
        }
    }
}
0
 Аватар для Melif
76 / 67 / 47
Регистрация: 26.03.2015
Сообщений: 205
26.04.2016, 16:39
Hastin, а если там еще есть кнопка сброса выбора?
C#
1
2
3
4
 private void button2_Click(object sender, EventArgs e)
        {
            radioButton1.Checked = radioButton2.Checked = radioButton3.Checked=false;
        }
0
 Аватар для Hastin
40 / 32 / 7
Регистрация: 24.03.2016
Сообщений: 270
26.04.2016, 16:43
В условии такого не сказано) Зачем себе геморрой создавать) так оно работает идеально)
А если на то пошло, то прямо на кнопке прописывать то что написали вы, и снизу ещё 1ну строчку :

C#
1
button1.Enabled = false;
Добавлено через 2 минуты
Вот так.
C#
1
2
3
4
5
 private void button2_Click(object sender, EventArgs e)
        {
            radioButton1.Checked = radioButton2.Checked = radioButton3.Checked=false;
            button1.Enabled = false;
        }
0
 Аватар для Melif
76 / 67 / 47
Регистрация: 26.03.2015
Сообщений: 205
26.04.2016, 16:48
Можно и так. Принципиальных отличий на самом деле нет
можно и третий вариант: вынести все это в отдельную функцию, которая будет вызываться на событие изменение выбранности каждого радиобаттона
0
6 / 6 / 3
Регистрация: 10.05.2013
Сообщений: 40
26.04.2016, 17:46  [ТС]
решил чем-то вроде костыля, прикрепив на функцию клик радиобаттонов разблокировку кнопки
0
 Аватар для Melif
76 / 67 / 47
Регистрация: 26.03.2015
Сообщений: 205
26.04.2016, 23:46
Цитата Сообщение от kioself Посмотреть сообщение
решил чем-то вроде костыля, прикрепив на функцию клик радиобаттонов разблокировку кнопки
ну можно и так, конечно. А почему вам не понравилось повесить то же самое на событие radioButton1_CheckedChanged ?
0
 Аватар для Hastin
40 / 32 / 7
Регистрация: 24.03.2016
Сообщений: 270
27.04.2016, 01:30
kioself, ну я вам так и написал выше.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
27.04.2016, 01:30
Помогаю со студенческими работами здесь

Как при нажатии кнопки RadioButton вызвать другую форму
Скажите, пожалуйста, как при нажатии кнопки RadioButton открывалась другая форма. Находил тему, где использовалась кнопка Batton, но для...

Появление кнопок при выборе RadioButton
В чем может быть ошибка? Я хочу сделать так, чтобы при включении RadioButton1 появлялась 1-я кнопка, а 2-я исчезала и наоборот. procedure...

Обновление картинки в Image при выборе RadioButton
Всем доброго времени суток. Скажите пожалуйсто как можно сделать чтоб, когда пользователь делал RadioButton.Checked:=True автоматически...

Что передается в контроллер при выборе radiobutton?
В представлении: @{Html.BeginForm();} <h2><p>@v.Text</p></h2> <p> <input...

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


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru