PB 電子会議室
発言No. | 更新日 | 題名(クリックすると発言内容と関連するコメントが表示されます) |
---|---|---|
21666 | 04/12/24 17:54:20 | PB8.0: 2つのデータウィンドウのTabによるカラム移動制御 By anty |
カテゴリ:データウィンドウ
日付:2004年12月24日 17:54 発信者:anty
題名:PB8.0: 2つのデータウィンドウのTabによるカラム移動制御
2つのデータウィンドウを隣合わせでShareDataを使用し、表示しています。
右のデータウィンドウ(dw_1)にはあるテーブルのキー項目のみを表示し、
左のデータウィンドウ(dw_2)にはその他の項目を表示しています。
この2つのデータウィンドウ間でTabによるカラム移動制御を行いたいと思っています。
過去の記事?003292を参考にやってみたのですが、
上手く動かないところがでてきました。
dw_1とdw_2それぞれにpbm_dwnkeyイベントを作成し、
以下のようにコーディングしています。
?と?の処理がそのまま実行すると行が移動してしまうので、return 1 を返してみました。
ところが、return 1を行うと、フォーカスがどこかに行ってしまい、
思ったようにフォーカス移動してくれません。
?の場合は、もう一度Tabキーを押せば、同一行のdw_2の先頭カラムに移動してくれるのですが、
?の場合は、もう一度Shift+Tabを押すと同一行のdw_1の先頭カラムに移動してしまいます。
長くなって申し訳ありませんが、どなたか分かる方教えて頂けませんか?
---dw_1のpbm_dwnkeyイベント----
if key = KeyTab! and keyflags = 1 and dw_1.getcolumn() = [dw_1の先頭カラム] then
//?dw_1からShift+Tabで1行上のdw_2の最終カラムに移動する処理
dw_2.setfocus()
dw_2.setcolumn([dw_2の最終カラム])
return 0
elseif key = KeyTab! and keyflags = 0 and dw_1.getcolumn() = [dw_1の最終カラム] then
//?dw_1からTabで同一行のdw_2の先頭カラムに移動する処理
dw_2.setfocus()
dw_2.setcolumn([dw_2の先頭カラム])
return 1
end if
---dw_2のpbm_dwnkeyイベント----
if key = KeyTab! and keyflags = 1 and dw_2.getcolumn() = [dw_2の先頭カラム] then
//?dw_2からShift+Tabで同一行のdw_1の最終カラムに移動する処理
dw_1.setfocus()
dw_1.setcolumn([dw_1の最終カラム])
return 1
elseif key = KeyTab! and keyflags = 0 and dw_2.getcolumn() = [dw_2の最終カラム] then
//?dw_2からTabで1行下のdw_1の先頭カラムに移動する処理
dw_1.setfocus()
dw_1.setcolumn([dw_1の先頭カラム])
return 0
end if
付加情報:
PowerBuilder Version (記載なし)
Client SoftWare
OS (記載なし)
DBMS (記載なし)
Browser (記載なし)
Server SoftWare
OS (記載なし)
DBMS (記載なし)
WebServer (記載なし)
Copyright © 2013 Power Future Co., Ltd.