Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > Windows Forms
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.10.2010, 19:14   #1
Riddle
Новичок
Джуниор
 
Регистрация: 12.10.2010
Сообщений: 2
Сообщение Элемент Radiobutton C#

Доброго время суток, возможно для кого то мой вопрос покажется элементарным, но все с чего-то начинали. И так...я пишу простенькое приложение для Windows на си шарп. Вопрос заключается в следующем: объединённые в GroupBox элементы Radiobutton, необходимо раелизовать так, чтобы после выбора одного из них высплывал MessageBox.

Вот фрагмент моего кода:

private void_radioButton1CheckedChanged(obj ect sender, EventArgs e)
{
if (radioButton1.Checked == true)
MessageBox.Show("Не верно!");
}

Проблема в том, что изначально на форме первый radioButton1 уже отмечен, и окно сообщения появляется сразу, хотя свойство Checked в конструкторе установлено False, остальные работают правильно, а вот с самым первым проблема, при чём, если его удалить, то отметка по умолчанию переносится на один ниже, и так далее, т.о. открываешь форму и уже появляется сообщение, хотя должно было только после выбора одного из компонентов radioButton, как от этого избавиться?

Заранее спасибо за помощь. =)
Riddle вне форума Ответить с цитированием
Старый 12.10.2010, 19:40   #2
HellchilD
 
Регистрация: 01.11.2009
Сообщений: 8
По умолчанию

попробуйте сделать баттон, который изначально отмечен "пустым" и невидимым, пользователь его не будет видеть и не сможет нажать, и сообщение выдаваться не будет
HellchilD вне форума Ответить с цитированием
Старый 12.10.2010, 20:01   #3
Assemblerru
Форумчанин
 
Регистрация: 28.01.2010
Сообщений: 224
По умолчанию

А попробуй использовать другой компонент (*я не знаю С#) но в билдере С++ есть компонент RadioGroup - панель группы радиокнопок.
всему свое время как зиме и весне
и каждому солнцу свой неба кусок
Assemblerru вне форума Ответить с цитированием
Старый 12.10.2010, 21:43   #4
THRASHER
 
Регистрация: 12.10.2010
Сообщений: 4
По умолчанию

а событие онКлик не катит?
вам бы сказки писать, господа студенты, а не программы! (с)
THRASHER вне форума Ответить с цитированием
Старый 12.10.2010, 21:48   #5
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

Не понятно это Windows Forms или WPF, ну не знаю что там в Windows Forms попробуйте следующие свойства у объекта Window/Form/Control (и т.д.) подобные как IsLoaded, IsInitialized. Т.е. они именно определят, либо это уже событие после инициализации окна (и всех его включающих элементов) либо это стадия инициализации.
BOBAH13 вне форума Ответить с цитированием
Старый 12.10.2010, 23:16   #6
Casper-SC
Форумчанин
 
Регистрация: 04.07.2007
Сообщений: 549
По умолчанию

У самого были подобные проблемы, только в WPF.
Вот решение для WInForms:
Код:
namespace WinForms_RadioButton
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();            
        }

        private void radioButton1_CheckedChanged(object sender, EventArgs e)
        {
            // if (radioButton1.Checked == true) писать не обязательно. Так как по умолчанию проверяется истинность условия.
            if (radioButton1.Checked) 
                MessageBox.Show("radioButton1!");
        }

        private void radioButton2_CheckedChanged(object sender, EventArgs e)
        {
            if (radioButton2.Checked)
                MessageBox.Show("radioButton2!");
        }

        private void radioButton3_CheckedChanged(object sender, EventArgs e)
        {
            if (radioButton3.Checked)
                MessageBox.Show("radioButton3!");
        }

        private void radioButton4_CheckedChanged(object sender, EventArgs e)
        {
            if (radioButton4.Checked)
                MessageBox.Show("radioButton4!");

        }

        //Подписываемся на события после первого отображения формы
        //то есть, после того, как radioButton1 станет Checked
        private void Form1_Shown(object sender, EventArgs e)
        {
            //Подписываем RadioButton'ы на события
            this.radioButton1.CheckedChanged += new EventHandler(radioButton1_CheckedChanged);
            this.radioButton2.CheckedChanged += new EventHandler(radioButton2_CheckedChanged);
            this.radioButton3.CheckedChanged += new EventHandler(radioButton3_CheckedChanged);
            this.radioButton4.CheckedChanged += new EventHandler(radioButton4_CheckedChanged);
        }
    }
}
Casper-SC вне форума Ответить с цитированием
Старый 15.10.2010, 18:30   #7
Riddle
Новичок
Джуниор
 
Регистрация: 12.10.2010
Сообщений: 2
По умолчанию

Спасибо всем за ответы, по всей видимости это какой то глюк Visual Studio 2008, онКлик работал также, и скрытый Radiobutton тоже не проходил, и код тоже не помог, выход из положения был найден путём введения кнопки "Проверить", которая выдавала Мэсэджбокс и непосредственно обрабатывала события нажат или не нажат Radiobutton.
Riddle вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
RadioButton 29_kapaT Компоненты Delphi 1 10.05.2010 03:30
radiobutton xxxn00bxxx Общие вопросы C/C++ 8 25.02.2010 08:06
radiobutton Bon'ka Компоненты Delphi 4 16.05.2009 21:56
RadioButton Pavelok Общие вопросы Delphi 3 14.05.2009 14:05
Первый нечетный элемент каждой строки удвоить (предполагается, что в каждой строке есть нечетный элемент Галина002 Помощь студентам 1 18.03.2009 06:30