Разработка рабочего стола: помните цель после потери фокуса

2

Можно ли сфокусироваться на другой программе для ответа на событие, но после того, как ответ был обработан, вернитесь к предыдущей программе и верните курсор там, где он был?

Это звучит как странный вопрос, но подумайте об этом по строкам

  • Пользователь вводит текстовое поле в программе A.
  • Появится окно для Программы B, и пользователь нажимает несколько кнопок для подтверждения.
  • Программа B возвращает управление Программе A и восстанавливает выбор текстового поля.

Если есть полное решение С#, то отлично, но похоже, что это может потребовать немного больше усилий, чем обычно.

Любые мысли?

Теги:
desktop-application
desktop

2 ответа

1

В моем опыте программы Windows работают именно так. Часто кажется, что они не потому, что пользователь возвращает фокус с помощью мыши, который сам сбрасывает фокус. Если это приложение winforms, вы, вероятно, можете что-то сделать с потерянным фокусом/получившими фокусные события на уровне формы.

1

Лично это может привести к тому, что пользователь выберет нежелательные значения во всплывающем окне. Например, кто-то печатает в Word. В вашем приложении появится окно, в котором нажатие "Enter" выбирает значение... например, кнопку по умолчанию. Не желая, пользователь "выбрал" неправильное значение в вашей форме.

Windows сама имеет тенденцию делать это, и это очень раздражает. Быстрое двойное нажатие на ярлык на рабочем столе для открытия приложения, а затем переход на (например) сообщение электронной почты перед запуском приложения, приведет к удалению фокуса из сфокусированного окна электронной почты и добавлению фокуса в только что открытое приложение, в результате чего ваш текст электронной почты или штрихи клавиатуры перейдут в только что открытое окно.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню