エディットコントロールに文字が入力される度にイベントを発生させる

PowerBuilder Tips

方法

データウィンドウの EditChanged イベントのように、シングルラインエディットやマルチラインエディットに文字が入力/削除されるたびにイベントを発生させるには、イベント ID : pbm_enupdate のユーザーイベントを作成します。

エディットコントロールの Modify イベントはフォーカスが外れた際や Enter が入力された際など、値が確定されたタイミングで発生しますが、pbm_enupdate を設定したイベントは文字が入力されるたびに発生します (IME での入力中は変換確定時)。

このため文字入力ごとに値を判定したい場合などに利用できます。

【例】1 文字入力される度に入力された文字のバイト数をスタティックテキスト (st_1) に表示する

[singlelineedit の “pbm_enupdate” を設定したユーザーイベント]

CONSTANT integer LI_MAXLENGTH = 280
integer li_len

// 現在のバイト数を取得
li_len = LenA(this.Text) 

// スタティックテキストにバイト数を表示
st_5.text = String(li_len) + "/" + String(LI_MAXLENGTH)

// 文字色を変更
IF li_len > LI_MAXLENGTH THEN
    st_5.TextColor = RGB(255,0,0) //赤
ELSE
    st_5.TextColor = RGB(0,0,0) //黒
END IF

 

Tips情報

プロダクト :PowerBuilder

バージョン :2019R3

Tips 一覧を見る
PowerBuilder マイグレーション
PowerBuilder学習、動画で始めちゃう?