Страница 1 из 1

Запуск дизайнера

Добавлено: 16 авг 2006, 12:45
Xptr
Осуществляем запуск дизайнера Disign().

После чего форма приложения из которой был запущен дизайнер просто зависает, к примеру мы сворачиваем дизайнер, а на рабочем столе наша форма, с которой ничего сделать нельзя, В общем попробовал делать так:

FormWindowState fws = SysBase.Consts.fmMain.WindowState;
SysBase.Consts.fmMain.WindowState = FormWindowState.Minimized;
//SysBase.Consts.fmMain.ShowInTaskbar = false;
Report.Show();
SysBase.Consts.fmMain.WindowState = fws;
//SysBase.Consts.fmMain.ShowInTaskbar = true;

Такие косяки:
1. После окрытия дизайнера, он не делается активным.
2. Если используем SysBase.Consts.fmMain.ShowInTaskbar = false, то после возвращения в главное окно в нем все глючит (уж не знаю где косяк, возможно и в моем приложении)

3. Так же не могу использовать Design(parentForm), потому что в приложении (MDI) все дочернии окна наследованы от одного класса FormChild, который опеределяет базовую функциональность каждого дочернего окна. При вызове метода с указанием в качестве родитесльского окна своего главного окна, дизайнер то отрисовывается в дочерней вкладке, но вот дальше начинает глючить приложение. (естественно так как окно дизайнера не унаследовано от FormChild)

В общем основной вопрос, как активизировать окно дизайнера после открытия?

Запуск дизайнера

Добавлено: 16 авг 2006, 13:52
Vital
Xptr писал(а):Осуществляем запуск дизайнера Disign().

После чего форма приложения из которой был запущен дизайнер просто зависает, к примеру мы сворачиваем дизайнер, а на рабочем столе наша форма, с которой ничего сделать нельзя, В общем попробовал делать так:

FormWindowState fws = SysBase.Consts.fmMain.WindowState;
SysBase.Consts.fmMain.WindowState = FormWindowState.Minimized;
//SysBase.Consts.fmMain.ShowInTaskbar = false;
Report.Show();
SysBase.Consts.fmMain.WindowState = fws;
//SysBase.Consts.fmMain.ShowInTaskbar = true;
Зависает потому, что дизайнер запускается как диалоговое окно.
Используйте такой код:

report.Design(false);

В этом случае дизайнер будет запущен как обыкновенное окно.
Такие косяки:
1. После окрытия дизайнера, он не делается активным.
2. Если используем SysBase.Consts.fmMain.ShowInTaskbar = false, то после возвращения в главное окно в нем все глючит (уж не знаю где косяк, возможно и в моем приложении)

3. Так же не могу использовать Design(parentForm), потому что в приложении (MDI) все дочернии окна наследованы от одного класса FormChild, который опеределяет базовую функциональность каждого дочернего окна. При вызове метода с указанием в качестве родитесльского окна своего главного окна, дизайнер то отрисовывается в дочерней вкладке, но вот дальше начинает глючить приложение. (естественно так как окно дизайнера не унаследовано от FormChild)

В общем основной вопрос, как активизировать окно дизайнера после открытия?
Можно добраться до окна дизайнера через свойство report.Designer:

report.Design(false);
report.Designer.....


В следующей версии дизайнер станет контролом.

Спасибо.