Работа с немодальной формой

Автор Тема: Работа с немодальной формой  (Прочитано 13492 раз)

0 Пользователей и 2 Гостей просматривают эту тему.

Оффлайн Константин СоковАвтор темы

  • ADN Club
  • **
  • Сообщений: 56
  • Карма: 0
Подскажите пожалуйста аналог .DialogResult = true/false для немодальной формы?

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Работа с немодальной формой
« Ответ #1 : 27-01-2014, 20:40:03 »
Подскажите пожалуйста аналог .DialogResult = true/false для немодальной формы?
Я не понял вопроса. Объясни подробнее о чем речь.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Константин СоковАвтор темы

  • ADN Club
  • **
  • Сообщений: 56
  • Карма: 0
Re: Работа с немодальной формой
« Ответ #2 : 27-01-2014, 20:48:46 »
есть немодальная форма. на ней как всегда кнопки OK Cancel, и обработчики событий
Код - C# [Выбрать]
  1.         private void btnOk_Click(object sender, RoutedEventArgs e)
  2.         {
  3.             this.DialogResult = true;
  4.             this.Close();
  5.         }
  6.  
  7.         private void btnCancel_Click(object sender, RoutedEventArgs e)
  8.         {
  9.             this.DialogResult = false;
  10.             this.Close();
  11.         }
если вместо
Код - C# [Выбрать]
  1. acad.ShowModelessWindow(dlg);
применить
Код - C# [Выбрать]
  1. acad.ShowModalWindow(dlg);
то кнопки отрабатывают как надо, если первый вариант то нет

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Работа с немодальной формой
« Ответ #3 : 28-01-2014, 10:16:40 »
1) Начнем с того, что this.DialogResult не может быть true или false ибо он перечисление: http://msdn.microsoft.com/ru-ru/library/system.windows.forms.dialogresult%28v=vs.110%29.aspx
2) Я не вижу у тебя понимания разницы между модальными и немодальными формами.
При использовании модальной формы после вызова acad.ShowModalWindow(dlg); управление следующей строке кода будет отдано только когда форма будет закрыта. В случае немодальной формы (т.е. после вызова acad.ShowModelessWindow(dlg);) управление следующей строке кода будет передано немедленно после создания и отображения на экране формы.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Константин СоковАвтор темы

  • ADN Club
  • **
  • Сообщений: 56
  • Карма: 0
Re: Работа с немодальной формой
« Ответ #4 : 28-01-2014, 19:36:21 »
Я не вижу у тебя понимания разницы между модальными и немодальными формами.
Так-то оно может и так. :( Как правильно организовать действия кнопки "Применить" (да и не только ее), т. е. вызвали форму (немодальную, сделанную на WPF) произвели в ней некоторые настройки, нажали кнопку "Применить", форма остается с нами, а в документ вносятся изменения в соответствии с произведенными настройками формы, после чего можно продолжать работать с формой при этом к документу постоянно можно обращаться. Пробывал все это засунуть с обработчик события данной кнопки, вроде получается (не без этого конечно), но это хорошо если форма маленькая, а если большая то жутко громоздко получается. Как быть?

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Работа с немодальной формой
« Ответ #5 : 29-01-2014, 03:42:49 »
Мне всё-равно пока непонятно. Тебе нужно временно спрятать немодальную форму, пока идет обработка события кнопки и работа с чертежом? Тогда наверное можно использовать методы Hide и Show формы. Вообще-то (IMHO) из немодальной формы с чертежом лучше работать так - в обработчике события кнопки запускать предварительно зарегистрированную команду (при помощи метода Document.SendStringToExecute), в которой и работать с чертежом.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Андрей Бушман

  • ADN Club
  • *****
  • Сообщений: 2000
  • Карма: 163
  • Пишу программки...
    • Блог
  • Skype: Compositum78
Re: Работа с немодальной формой
« Ответ #6 : 29-01-2014, 10:52:22 »
вызвали форму (немодальную, сделанную на WPF) произвели в ней некоторые настройки, нажали кнопку "Применить", форма остается с нами, а в документ вносятся изменения в соответствии с произведенными настройками формы, после чего можно продолжать работать с формой при этом к документу постоянно можно обращаться.
Чем обусловлено желание использовать именно немодальных форм (ой ли форм?), вместо палитр?

P.S. Формы (Form) - это в WinForms, а в WPF - это окна (Window). Рекомендую называть вещи своими именами, дабы не возникало путанницы.

Оффлайн Константин СоковАвтор темы

  • ADN Club
  • **
  • Сообщений: 56
  • Карма: 0
Re: Работа с немодальной формой
« Ответ #7 : 29-01-2014, 21:57:51 »
Тебе нужно временно спрятать немодальную форму, пока идет обработка события кнопки и работа с чертежом?
Нужно чтобы при нажатии на кнопку форма по-прежнему оставалась на экране (с передачей фокуса окну AutoCAD), а чертеж редактировался.
Вообще-то (IMHO) из немодальной формы с чертежом лучше работать так - в обработчике события кнопки запускать предварительно зарегистрированную команду (при помощи метода Document.SendStringToExecute), в которой и работать с чертежом.
включая и те команды, которые создаю я?
Код - C# [Выбрать]
  1.         [CommandMethod("schema", CommandFlags.Modal)]
Чем обусловлено желание использовать именно немодальных форм (ой ли форм?), вместо палитр?
Мне думается сложновато будет засунуть в палитру все задуманное (примерный вид окна во вложении), а немодальное для возможности постоянно контролировать ход выполнения команд вызываемых из пользовательского окна.

Оффлайн Андрей Бушман

  • ADN Club
  • *****
  • Сообщений: 2000
  • Карма: 163
  • Пишу программки...
    • Блог
  • Skype: Compositum78
Re: Работа с немодальной формой
« Ответ #8 : 29-01-2014, 21:59:39 »
Цитата: Константин Соков
Мне думается сложновато будет засунуть в палитру все задуманное (примерный вид окна во вложении)
Как два пальца об асфальт...

Оффлайн Константин СоковАвтор темы

  • ADN Club
  • **
  • Сообщений: 56
  • Карма: 0
Re: Работа с немодальной формой
« Ответ #9 : 29-01-2014, 22:06:59 »
Цитата: Константин Соков
Мне думается сложновато будет засунуть в палитру все задуманное (примерный вид окна во вложении)
Как два пальца об асфальт...
Вселяете надежду :D
Не посоветуете ли толковый форум по WPF?

Оффлайн Андрей Бушман

  • ADN Club
  • *****
  • Сообщений: 2000
  • Карма: 163
  • Пишу программки...
    • Блог
  • Skype: Compositum78
Re: Работа с немодальной формой
« Ответ #10 : 29-01-2014, 22:13:43 »
Вселяете надежду :D
Не посоветуете ли толковый форум по WPF?
Рекомендую не форум, а прежде всего книги за номерами 9, 10 и 11, указанные мною здесь. Это намного лучше, чем форумы. Обозначенное выше на скрине окно делается очень просто за несколько минут, причём даже набирая XAML разметку вручную в текстовом редакторе. Книжки читать нужно - без этого никак...

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Работа с немодальной формой
« Ответ #11 : 29-01-2014, 22:15:51 »
включая и те команды, которые создаю я?
Я именно твои команды и имел в виду.
Нужно чтобы при нажатии на кнопку форма по-прежнему оставалась на экране (с передачей фокуса окну AutoCAD), а чертеж редактировался.
Я имел в виду форма убирается на время отрисовки (Выполнение построения) и потом появляется обратно. Как вариант...
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Дмитрий Загорулькин

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 737
Re: Работа с немодальной формой
« Ответ #12 : 29-01-2014, 23:37:57 »
Мне думается сложновато будет засунуть в палитру все задуманное (примерный вид окна во вложении)
Если есть уже готовая форма, то можно легко разместить ее на палитре с минимальными переделками.

Оффлайн dmitrymaslakov

  • ADN OPEN
  • Сообщений: 40
  • Карма: 1
Re: Работа с немодальной формой
« Ответ #13 : 30-10-2018, 04:43:23 »
Чем обусловлено желание использовать именно немодальных форм (ой ли форм?), вместо палитр?
Я хотел бы понять разницу между палитрами и немодальными окнами WPF. Где то на сайте видел статью о преимуществах палитр перед окнами, дайте, пожалуйста, ссылку кто знает

Оффлайн Вильдар

  • ADN Club
  • ****
  • Сообщений: 409
  • Карма: 77
  • Skype: vildar82
Re: Работа с немодальной формой
« Ответ #14 : 30-10-2018, 08:28:01 »
Со стороны пользователя разница же очевидна - палитры прилипают к границам окна, есть автоскрытие и т.п.
Немодальное окно этого не может.