入力文字がカラムの最大値に達したときに自動でフォーカスを移動させる
2021/12/01
方法
エディットマスク編集様式ではカラムのプロパティの [編集] タブで [自動スキップ] を有効にすることで、入力可能な最大文字数 (「最大値」プロパティ) に達した場合に次の項目にフォーカスが移動します。
エディット編集様式では [自動スキップ] プロパティがないため、データウィンドウコントロールの EditChanged イベントで文字が入力されるたびに文字数をチェックし、最大値に達したら次のフォーカスに移るように実装します。
【例】データウィンドウの EditChanged イベント
string ls_style // カラムの編集様式 integer li_limit // カラムの最大値 //カラムの編集様式が「エディット」の場合 IF Lower(dwo.Edit.Style) = "edit" THEN // カラムの「最大値」を取得 (デフォルトは 0 (未設定)) li_limit = Integer(dwo.Edit.Limit) // 「最大値」が未設定のときは何もしない IF li_limit = 0 THEN RETURN // 入力値の長さをチェック IF Len(data) = li_limit THEN // 「最大値」に達した場合は [Tab] を入力してフォーカス移動 Send(Handle(this), 256, 9, Long(0, 0)) END IF END IF
Tips情報
プロダクト :PowerBuilder
バージョン :2019R3