powerbuilder: событие измененного предмета не срабатывает при изменении фокуса - PullRequest
2 голосов
/ 19 августа 2010

У меня есть окно мастер-детали. В подробном окне, когда я изменяю поле и щелкаю в главном окне, фокус меняется, но событие изменения элемента подробного окна данных не запускается. Теперь я хочу запустить событие itemaged, когда фокус меняется с одного окна данных на другое окно данных.

P.S.: Событие itemaged срабатывает, только если я изменяю поле и нажимаю tab, или если я изменяю поле и щелкаю внутри другого поля того же окна данных.

Ответы [ 2 ]

4 голосов
/ 19 августа 2010

Если пользователь вводит данные и не нажимает вкладку, фокус не меняется. И itemaged не сработает, пока значение не изменится (и не пройдет проверку).

Что здесь действительно происходит (если я правильно помню), так это то, что PowerBuilder помещает поле редактирования поверх фактического окна данных; окно данных никогда не увидит новое значение, пока PB не получит значение из элемента управления редактирования.

Вам нужно захватить измененный фокус (я думаю, onblur?) Или, если это недостаточно детально, сообщения keyup.

3 голосов
/ 19 августа 2010

В событии LoseFocus подробного окна данных вызовите AcceptText () для окна подробных данных.

...