入力項目にフォーカスが当たった際にカーソルの位置を指定する

PowerBuilder Tips

方法

シングルラインエディットやエディットマスク、カラムなどの文字入力が可能な項目にフォーカスが移動した際に、カーソル (入力ポイント) の位置を指定するには、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

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