フォーム、テキストの両方でKeyPressが出来ません。

解決


taka  2005-11-23 23:23:14  No: 92842

VB5.0+ACCESS  での開発です。

txt1  txt2  txt3  txt4  とあり、

各KeyPress  で次のtxtへSetFocousをしているのですが。

formKeypressを設定してから、txtのKeyPressが効かなくなりました。
それぞれ処理は、

Private Sub ***  KeyPress(KeyAscii As Integer)
    On Error GoTo Err_Pro
    
    If KeyAscii = vbKeyReturn Then
        KeyAscii = 0

      SetFocus
        
    End If
    Exit Sub

End Sub

と書いております。。。

form、txt、どちらでもkeyPressを反応させるのは不可能なのでしょうか??

よろしくお願い致します。


我龍院忠太  2005-11-23 23:51:46  No: 92843

何をしたいのかいまいちわからないのですが、FormのKeyPreviewをTrueにしておいて、
Form_KeyPressイベントでKeyAscii = 0をやれば、当然そのKeyPressはキャンセルされます。
単にリターンでテキストのフォーカスを移動したい場合は、たとえば
テキストボックスをText1(1)〜Text1(4)まで配列で4つ用意して、
Private Sub Text1_KeyPress(Index As Integer, KeyAscii As Integer)
    Dim intT As Integer
    If KeyAscii = vbKeyReturn Then
        intT = (Index Mod 4) + 1
        With Text1(intT)
            .SetFocus
            .SelStart = Len(.Text)
        End With
        KeyAscii = 0
    End If
End Sub
こんなことをすれば可能です。


taka  2005-11-24 00:01:37  No: 92844

説明不足で申し訳ございません。

検索の画面を作成しており、

検索条件には

店舗名.txt  や  住所.txt  

等に検索条件を入力後、検索ボタンを押し、検索結果は、
pnlに表示させております。pnlはインデックスで画面上に10ありまして、

formKeyPressでエンターを押下すると、pnl(1)を選んで、別フォームの・・・・

という感じです。

ですので、txtはインデスクでは無く、個別に名前が付いております。

よろしくお願い致します


なな  2005-11-24 01:11:25  No: 92845

さいごのセットフォーカス
これって記述あってる?

自分なら
キーアスキーを0にするんではなく
タブのキーアスキーをセットしますね。


なな  2005-11-24 01:16:15  No: 92846

セットフォーカスの
記述がまちがってるから
エラーハンドラに飛ぶだけたから動かないように見えてるだけかな

ステップ実行しましょ


taka  2005-11-24 01:45:47  No: 92847

setfocusには、移動先のtxtを記入しております。

tabは、一応tabindexを設定しているので、tabでの移動も可能ですが、他のシステムと
同じ仕様(エンターはフィールド移動)にしたい為に苦戦中です。

タブのキーアスキーの意味が分かりません><
よろしくお願い致します。


なな  2005-11-24 02:05:03  No: 92848

>タブのキーアスキーの意味が分かりません><

KeyAscii = 0

KeyAscii = ??

??をtabの値にしてください。


taka  2005-11-25 18:56:39  No: 92849

やはり、formKeypress  と通常の***.txtでのkeypressの同時使用は出来ないのでしょうか??

tabでのフィールド移動では無く、やはり、エンターキーでのフィールド移動が理想です。


通ってみた  2005-11-25 19:03:47  No: 92850

AsciiをTabの値にするというのは、Enterキーを押したらTabキーを押したのと同じ働きをさせる為だと思いますが

takaさんはどう受け取ったのでしょうか?
回答には「Tabキーを押して移動」とはどこにも書いていないですよね


なな  2005-11-25 19:37:00  No: 92851

冷静に、わたしは、
キーアスキーを0にするんではなく
タブのキーアスキーをセットしますね。

と回答したのは・・・。

つまり、Enterが押されたとき、KeyAsciiを0にセットし
何も押されていないように、偽装するのではなく、

Enterが押されたとき、KeyAsciiにTabの値をセットし
Tabが押されてたように、偽装する。

というのを言っております。

Tabを押すとは言っておりません。
Tabを押したときと同じ動きにするだけです。


なな  2005-11-25 19:39:24  No: 92852

>やはり、formKeypress  と通常の***.txtでのkeypressの同時使用は出来ないのでしょうか??

答えは否!
FormのKeyPreviewプロパティがTrueならば。
Formのキーイベントが先に動作し、その後、書くオブジェクトのイベントが
発生します。
っとヘルプが入っていなくても、
プロパティウィンドウの説明書きにありますので、読みましょう。


いな  2005-11-25 19:41:49  No: 92853

> takaさんはどう受け取ったのでしょうか?
> 回答には「Tabキーを押して移動」とはどこにも書いていないですよね

??をtabの値にしてください。

を実際に試し、Enterを押下したら、そんな回答は出ないはずです。
実際に試さないで、予測で話していませんか?


taka  2005-11-25 20:01:22  No: 92854

はい、実際PCの前でしております。

txtのkeypressの中にTabのキーアスキー『9』をセットしたのですが、

どうしてもFormkeyPressのキープレスが反応して、txt内でエンターキーを押下しても、

全く何の反応もありません。


taka  2005-11-25 20:04:08  No: 92855

ただ、FormKeyPressは、Captionの内容を選んで別画面に移動する為に使いたいので、

FormKeyPressの中で

If pnlCode(1).Caption = "" Then Exit Sub

と記載すると、FormKeyPressの中が走らないので、txtでのKeypressが効く様になったのですが・・・・


なな  2005-11-25 20:21:59  No: 92856

> txtでのKeypressが効く様になったのですが・・・・

#"が・・・・"の後は、
#Enterキーでフォーカスが動きません。
#と常識のある人は予測しますが、正しいですか?

っていうか、後から投稿したということは↓で続きやりたいの?
http://www2j.biglobe.ne.jp/~little-g/cgi-bin/hajikariqa.cgi


taka  2005-11-25 20:40:33  No: 92857

#"が・・・・"の後は、
#Enterキーでフォーカスが動きません。
#と常識のある人は予測しますが、正しいですか?

はい!

それと、リンク先の質問内容は私がした訳ではありません。
文章は私が書き込んだ物とまったく同じですが・・・
これはイタズラでしょうか??

なんだか、よく理解できません。


通ってみた  2005-11-25 20:48:47  No: 92858

>>いなさん
あれ?私の解釈間違ってましたか・・・?


いな  2005-11-25 21:18:49  No: 92859

ん〜、かなり紛らわしかったです。
> tabでのフィールド移動では無く、やはり、エンターキーでのフィールド移動が理想です。

に対し、

> takaさんはどう受け取ったのでしょうか?

どう受取っても、実際に試していれば、
そんな回答は出ないはずだけど、不思議ですよねぇ〜。通ってみた さん

という扱いのつもりっす。


なな  2005-11-25 21:20:22  No: 92860

>これはイタズラでしょうか??

俗に言う、成りすましというヤツですかね。
誤解の無いように、あちらの投稿に
コメントしておいた方が良いかもしれないですね。


taka  2005-11-26 00:50:32  No: 92861

ご指導頂いた方法ではないですが、解決する事が出来ましたので、CLOSEさせて頂きます。

ありがとうございました。


通ってみた  2005-11-26 03:19:00  No: 92862

>>takaさん
解決したのでしたら、その方法を書いてくれると情報として残るのですが・・・

解決したのでしたら、ですが


通りすがり  2005-11-26 03:33:21  No: 92863

http://madia.world.coocan.jp/cgi-bin/VBBBS/wwwlng.cgi?print+200511/05110081.txt

も、そうですが、
質問の仕方を知らない人は、
解決報告の仕方も知らない人が多いので
私はあきらめています。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加