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

方法
データウィンドウの 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