入力文字がカラムの最大値に達したときに自動でフォーカスを移動させる

PowerBuilder Tips

方法

エディットマスク編集様式ではカラムのプロパティの [編集] タブで [自動スキップ] を有効にすることで、入力可能な最大文字数 (「最大値」プロパティ) に達した場合に次の項目にフォーカスが移動します。

エディット編集様式では [自動スキップ] プロパティがないため、データウィンドウコントロールの 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

Tips 一覧を見る
PowerBuilder マイグレーション
PowerBuilderとは? ~デキる大人へ変身できる?ローコード開発ツール~