Я создаю систему IT-билетов/инвентаря, и программа выполнена, теперь я добавляю инструкции для конечных пользователей и других техников в нашей школе. Поскольку я знаю, что никто не прочитает руководство по эксплуатации, я решил сделать инструкции для каждого экрана и поместить их в Модальные Windows, активированные нажатием кнопки «Справка», которую я добавил в раздел «Команды экрана».OpenModalWindow выдает ошибку при первом запуске экрана
Это прекрасно работает, поэтому я решил захватить событие KeyDown и запустить окно, если они нажмут F1. Здесь ситуация становится немного странной. Если HelpWindow для этого конкретного экрана был открыт хотя бы один раз, нажатие F1 снова открывает его без проблем. Если он никогда не был открыт, нажатие F1 приводит к ошибке «Control» HelpWindow »не содержит модального окна. Нельзя использовать OpenModalWindow/CloseModalWindow. ' После закрытия этого сообщения об ошибке F1 запустит HelpWindow точно так, как ожидалось. Очень странно ...
информацияфона: Visual Studio 2012 Lightswitch проект VB (я работаю как в VB и C#, подбросили монету для этого проекта) модальное окно представляет собой группу на экране, что не видимый, с именем «HelpWindow»; Я использую OpenModalWindow("HelpWindow")
, чтобы открыть его. Точная строка кода в коде HelpButton_Execute и обработчик событий для события KeyDown. Это тот же метод, который я использую для каждого другого модального окна в программе, для отправки новых билетов, добавления оборудования в инвентарь и т. Д. Эта проблема возникает только в обработчике событий и только при первом нажатии клавиши F1. Поведение одинаково на каждом экране с окном справки.
Мои попытки Google решить эту проблему были бесплодны. Кто-нибудь когда-либо видел это поведение раньше?
Вы правы в том, что ошибки часто не точны. :) В созданном на экране методе я использую AddHandler («ScreenName»). ControlAvailable, Address of ScreenAvailable – bigelowr
Случайно нажмите клавишу ввода слишком рано. В доступном на экране методе я делаю еще один AddHandler, на этот раз ищущее событие KeyDown. Я попробую диспетчера, когда вернусь к работе на следующей неделе. Благодарю. – bigelowr
Звучит правильно. Я надеюсь, что использование диспетчерского вызова поможет. –