質問 1:から 3 を返すことによりitemerror
、データを拒否したことになります。これにより、列がクリアされ、itemchanged
再度 がトリガーされます。
PowerBuilder がこのように動作するように設計されている理由については、理論的には、驚きが少ないという原則に従うと考えていたのではないかと思いますitemchanged
。
質問 2:イベントはをitemchanged
オーバーライドしますitemerror
。itemchanged
入力を拒否し、フォーカスの変更を妨げました。入力をitemerror
受け入れるようになりましたが、フォーカスの変更に関するブロックを削除していません。1 または 3 を返すことitemchanged
で、イベントからフォーカスを変更できるようにするかどうかを制御できるため、 から2 を返す必要があります。itemerror
powerbuilder のヘルプ ファイルが手元になくても、誰かがこの質問を読んでいる場合:
の戻り値itemchanged
:
0 (デフォルト) データ値を受け入れる
1 データ値を拒否し、フォーカスの変更を許可しない (itemerror
のトリガー) 2 データ値を拒否するが、フォーカスの変更を許可する (itemerror のトリガー)
の戻り値itemerror
:
0 (デフォルト) データ値を拒否し、エラー メッセージ ボックスを表示する
1 メッセージ ボックスなしでデータ値を拒否する
2 データ値を受け入れる
3 データ値を拒否するが、フォーカスを変更できるようにする