Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Доступ к компонентам на динамически созданной форме (на C++)  (Прочитано 8545 раз)
0 Пользователей и 1 Гость смотрят эту тему.
VIB75
Новенький

ru
Offline Offline

« : 13-12-2013 11:42 » 

Я создал динамически новую форму, затем разместил на ней чекбокс и DateTimePicker. Сделал обработчик у чекбокса CheckedChanged.
Нужно, чтобы при установке галочки в чекбоксе в DateTimePicker прописалась дата, например 01/01/2000.

Вот код, создающий форму и компоненты на ней:

Код: (C++)
Form^ form_map_maker = gcnew Form; // создаем форму
form_map_maker->Size = System::Drawing::Size(330, 250);// устанавливаем размер формы
form_map_maker->StartPosition = FormStartPosition::CenterScreen; //определяем начальное положение формы
form_map_maker->FormBorderSt yle = System::Windows::Forms::FormBorderStyle::FixedDialog; // определяем стиль формы (модальное, изменяемое по размеру и т.п.)
 
DateTimePicker^ dateTimePicker1_map_maker = gcnew DateTimePicker; // создаем компонент dateTimePicker1_map_maker
dateTimePicker1_map_maker->Location = Point(5,75); // определяем положение dateTimePicker1_map_maker на форме
form_map_maker->Controls->Add( dateTimePicker1_map_maker ); // добавляем dateTimePicker1_map_maker на форму

CheckBox^ checkBox1_map_maker = gcnew CheckBox; // создаем компонент checkBox1_map_maker
checkBox1_map_maker->Location = Point(160,75); // определяем положение checkBox1_map_maker на форме
checkBox1_map_maker->Checked = false; // убираем "галочку"
checkBox1_map_maker->CheckedChanged += gcnew System::EventHandler(this, &Form1::checkBox1_map_maker_CheckedChanged); // добавляем обработчик события при изменении "галочки"
form_map_maker->Controls->Add( checkBox1_map_maker ); // добавляем checkBox1_map_maker на форму
 
form_map_maker->ShowDialog(); // показываем форму как модальное окно;

Вот обработчик для чекбокса:

Код: (C++)
private: System::Void checkBox1_map_maker_CheckedChanged(System::Object^  sender, System::EventArgs^  e)
{
     CheckBox ^Ctrl_checkbox = dynamic_cast<CheckBox^>(sender);
     if (Ctrl_checkbox->Checked == true)
         {
                      // Как вот тут изменить значение Value у dateTimePicker1_map_maker???
          }
}

Как изменить значение Value у DateTimePicker?
Что-то типа   
Код: (C++)
xxxxxxx->Value = DateTime(2000, 1, 1, 0, 0, 0);
должно быть, но что вместо хххххх???

Помогите пожалуйста!
Записан
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #1 : 13-12-2013 12:44 » 

Цитата: VIB75
что вместо хххххх???
Ну...
Цитата: VIB75
Что-то типа
Код:
dateTimePicker1_map_maker 

Если я правильно понимаю, верхняя часть кода - это конструктор. Тогда указатель на объект (объявление переменной) нужно сделать не внутри конструктора, а внутри класса - и тогда оно будет видно в обработчике.
Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
VIB75
Новенький

ru
Offline Offline

« Ответ #2 : 14-12-2013 08:52 » 

Я пробовал так, это не помогло. Верхняя часть кода - это создание динамическое формы при нажатии на конку, находится этот код в обработчике нажатия на кнопку.
Записан
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #3 : 14-12-2013 12:46 » 

VIB75, ну так неправильно. Нужно создать свой класс формы и делать это в конструкторе, а в обработчике кнопки лишь создавать объект формы.
Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines