Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / WinForms, .Net Framework Новый топик    Ответить
 Форма в форме  [new]
JeSert
Member

Откуда: Украина
Сообщений: 809
Помница в MFC был обьект в который можно было запихать окна или это MDI??
как допустим в форму запихнуть еще одну форму.
Есть конечно выход взять Panel сделать не форму а UserControl тогда без проблем :))
29 дек 04, 20:41    [1219927]     Ответить | Цитировать Сообщить модератору
 Re: Форма в форме  [new]
gerss
Member

Откуда: Москва
Сообщений: 1002
В общем, так:
Form2 f2 = new Form2();
f2.Parent = f1.panel1;
f2.Show();

f1 - форма, в которую надо запихать форму, panel1 - панель на ней, f2 - форма, которую надо запихать.

Ну, или MDI-контейнер и child-формы.

Сергей
30 дек 04, 11:01    [1220819]     Ответить | Цитировать Сообщить модератору
 Re: Форма в форме  [new]
Осирис
Member

Откуда:
Сообщений: 355
Что-то не работает:

Additional information: Cannot add a top level control to a control.
30 дек 04, 12:50    [1221404]     Ответить | Цитировать Сообщить модератору
 Re: Форма в форме  [new]
gerss
Member

Откуда: Москва
Сообщений: 1002
Да, забыл одну строчку:

f2.TopLevel = false;

перед

f2.Parent = f1.panel1;

Сергей
30 дек 04, 13:15    [1221534]     Ответить | Цитировать Сообщить модератору
 Re: Форма в форме  [new]
Осирис
Member

Откуда:
Сообщений: 355
Ксати, поставить ее после ... Parent = .... , то не работает. А почему ? Вроде бы устанавливаем просто логическое свойство. Или там что-то еще происходит ?
30 дек 04, 13:34    [1221625]     Ответить | Цитировать Сообщить модератору
 Re: Форма в форме  [new]
gerss
Member

Откуда: Москва
Сообщений: 1002
Осирис
Ксати, поставить ее после ... Parent = .... , то не работает. А почему ? Вроде бы устанавливаем просто логическое свойство. Или там что-то еще происходит ?


Там происходит добавление формы в коллекцию Controls панели и возникает Exception. А если перед - добавляется уже не top level control.
30 дек 04, 14:04    [1221782]     Ответить | Цитировать Сообщить модератору
 Re: Форма в форме  [new]
JeSert
Member

Откуда: Украина
Сообщений: 809
Йо-хо-хо когда делаю всю эту кашу!!
то получается что я потом не могу закрыть окно.
тоесть загружаю постоянно разные окна и у меня перестает работать две вещи
1.Окно просто не закрывается.
2.Не работат сочетанияя клавиш которые настроены для пунктов меню главного окна!
6 янв 05, 22:31    [1229664]     Ответить | Цитировать Сообщить модератору
 Re: Форма в форме  [new]
JeSert
Member

Откуда: Украина
Сообщений: 809
Але хто скажет как от этого избавится, у меня временами вообще приложение теряет фокус и сним вообще работать нельзя!
14 янв 05, 22:00    [1246855]     Ответить | Цитировать Сообщить модератору
 Re: Форма в форме  [new]
Roman S. Golubin
Member

Откуда: 140002
Сообщений: 11541
JeSert
Але хто скажет как от этого избавится, у меня временами вообще приложение теряет фокус и сним вообще работать нельзя!


Да уж... насоветовали :-)))
14 янв 05, 23:59    [1247103]     Ответить | Цитировать Сообщить модератору
 Re: Форма в форме  [new]
JeSert
Member

Откуда: Украина
Сообщений: 809
Ну так как быть тогда и из-за чего такая проблема?
15 янв 05, 12:52    [1247416]     Ответить | Цитировать Сообщить модератору
 Re: Форма в форме  [new]
Roman S. Golubin
Member

Откуда: 140002
Сообщений: 11541
Окно в режиме формы не предназначено для функционирования в качестве элемента управления. Сообщения к нему приходят не те, которые оно ожидает и которые может обработать, да и само оно не отсылает необходимых сообщений контейнеру, в который ты его помещаешь... в общих чертах - нет соответствия интерфейсов из-за чего результаты работы могут быть совершенно непредсказуемыми.
Как вариант, можешь создать свой класс формы унаследовав его от UserControl, или переписав WndProc класса Form... только зачем все это нужно - есть же уже написанный MDI - один в один то что ты хочешь? :-)
15 янв 05, 14:20    [1247481]     Ответить | Цитировать Сообщить модератору
Все форумы / WinForms, .Net Framework Ответить