4

PB6.5.1 および PB9.0 内:</p>

質問 1: itemchanged イベントで: return 1 itemerror イベントで: return 3 実行時に発生するイベントの順序は次のとおりです: itemchanged-->itemerror-->itemchanged-->itemerror 各イベントが 2 回発生するのはなぜですか?</p>

質問 2: itemchanged イベントで: return 1 itemerror イベントで: return 2 実行時にフォーカスが次のセルに移動しませんでした。なぜですか?</p>

ありがとう。

4

1 に答える 1

6

質問 1:から 3 を返すことによりitemerror、データを拒否したことになります。これにより、列がクリアされ、itemchanged再度 がトリガーされます。

PowerBuilder がこのように動作するように設計されている理由については、理論的には、驚きが少ないという原則に従うと考えていたのではないかと思いますitemchanged

質問 2:イベントはをitemchangedオーバーライドしますitemerroritemchanged入力を拒否し、フォーカスの変更妨げました。入力をitemerror受け入れるようになりましたが、フォーカスの変更に関するブロックを削除していません。1 または 3 を返すことitemchangedで、イベントからフォーカスを変更できるようにするかどうかを制御できるため、 から2 を返す必要があります。itemerror


powerbuilder のヘルプ ファイルが手元になくても、誰かがこの質問を読んでいる場合:

の戻り値itemchanged:

0 (デフォルト) データ値を受け入れる
1 データ値を拒否し、フォーカスの変更を許可しない (itemerror
のトリガー) 2 データ値を拒否するが、フォーカスの変更を許可する (itemerror のトリガー)

の戻り値itemerror:

0 (デフォルト) データ値を拒否し、エラー メッセージ ボックスを表示する
1 メッセージ ボックスなしでデータ値を拒否する
2 データ値を受け入れる
3 データ値を拒否するが、フォーカスを変更できるようにする

于 2009-11-26T14:36:56.373 に答える