Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Отображение формы из другой формы. Помогите.

16K
16 апреля 2006 года
H5N1
9 / / 14.04.2006
Новичок. Совсем-совсем. Осваиваю С++ и одновременно Visual C++ 2005 Exp. Edition.
Книжек нет нифига нет.
Вопрос такой.
Как отобразить форму (модально или немодально)
из другой формы, допустим при нажатии на кнопку.
Делаю так.
Создаю две формы Form1, Form2
На Form1 рисую кнопку. В обработчике события OnClick пишу:
Form * Form2 = new Form();
Form2->ShowDialog(this);
Выдает сообщение об ошибке:
error C3699: '*' : cannot use this indirection on type 'System::Windows::Forms::Form'
error C2750: 'System::Windows::Forms::Form' : cannot use 'new' on the reference type; use 'gcnew' instead
error C2440: 'initializing' : cannot convert from 'System::Windows::Forms::Form *' to 'System::Windows::Forms::Form ^'
Что делать-то!!!?
713
17 апреля 2006 года
Ap0k
360 / / 13.03.2006
Цитата:
Originally posted by H5N1
Новичок. Совсем-совсем. Осваиваю С++ и одновременно Visual C++ 2005 Exp. Edition.
Книжек нет нифига нет.
Вопрос такой.
Как отобразить форму (модально или немодально)
из другой формы, допустим при нажатии на кнопку.
Делаю так.
Создаю две формы Form1, Form2
На Form1 рисую кнопку. В обработчике события OnClick пишу:
Form * Form2 = new Form();
Form2->ShowDialog(this);
Выдает сообщение об ошибке:
error C3699: '*' : cannot use this indirection on type 'System::Windows::Forms::Form'
error C2750: 'System::Windows::Forms::Form' : cannot use 'new' on the reference type; use 'gcnew' instead
error C2440: 'initializing' : cannot convert from 'System::Windows::Forms::Form *' to 'System::Windows::Forms::Form ^'
Что делать-то!!!?



Может так ?

 
Код:
Form^ Form2 = gcnew Form();
Form2->ShowDialog();
15K
20 апреля 2006 года
Iceman
19 / / 20.04.2006
Цитата:
Originally posted by H5N1
Создаю две формы Form1, Form2
На Form1 рисую кнопку. В обработчике события OnClick пишу:
Form * Form2 = new Form();
Form2->ShowDialog(this);
Выдает сообщение об ошибке:
error C3699: '*' : cannot use this indirection on type 'System::Windows::Forms::Form'
error C2750: 'System::Windows::Forms::Form' : cannot use 'new' on the reference type; use 'gcnew' instead
error C2440: 'initializing' : cannot convert from 'System::Windows::Forms::Form *' to 'System::Windows::Forms::Form ^'
Что делать-то!!!?



Ошибка в следующем - если ты создал две формы, Form1 и Form2 в дизайнере, то для того, что бы программно вызвать вторую форму из первой необходимо писать следующее:

Form2* frm2 = new Form2();
frm2->ShowDialog(this);

Дело в том, что когда ты в дизайнере создал форму Form2, ты создал КЛАСС Form2, и для того, чтобы программно показать форму, сначала нужно создать экземпляр этого класса.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог