入力項目にフォーカスが当たった際にカーソルの位置を指定する
2021/11/04
方法
シングルラインエディットやエディットマスク、カラムなどの文字入力が可能な項目にフォーカスが移動した際に、カーソル (入力ポイント) の位置を指定するには、SelectText 関数を使用します。
たとえば、日付項目に ”YYYY/MM/DD HH:MM:SS” と書式を指定したエディットマスクにフォーカスが移動したときに、時刻 (“HH”) の入力が行える位置にカーソルを移動するには、エディットマスクの GetFocus イベントに下記を記述します。
【例】エディットマスクのフォーカスが移動した際に時間の位置にカーソルを移動する editmask コントロールの GetFocus イベント
// YYYY/MM/DD HH:MM:SS の時間 (HH) の直前にカーソルを移動 this.SelectText(12, 0)
また、データウィンドウに配置されたカラムの場合は ItemFocusChanged イベントに記述します。
“@@-@@@@-@@” と書式が設定されたエディット編集様式のカラム (データは 8 文字) にフォーカスが移った際に、末尾の 2 桁目にカーソルを移動する場合は ItemFocusChaged イベントに下記を記述します。
【例】エディット編集様式のカラム (id) の 末尾 2 桁目 (7 文字目の直前)にカーソルを移動する
[datawindow コントロールの ItemFocusChaged イベント]
string ls_column // フォーカス移動後のカラム名を取得 (編集書式 "@@-@@@@-@@" ※データは 8 文字) ls_column = dwo.name // カラムが id だった場合、末尾の 2 桁目 (7 文字目) の前にカーソルを移動 IF ls_column = "id" THEN this.SelectText(9, 0) END IF
Tips情報
プロダクト :PowerBuilder
バージョン :2019R3