この掲示板でも入力フォームなどでエンターを押して次の入力項目の欄へフォーカスが移動するやり方は参考にさせていただいたのですが、(VB6です)
こんな感じで実現しております。
Dim obj As Object
If KeyAscii = Asc(vbCr) Then
Set obj = Me.ActiveControl
Me.ActiveControl.Enabled = False
obj.Enabled = True
Set obj = Nothing
End If
'エンターキー押下時のビープ音の消音
If KeyAscii = vbKeyReturn Then
KeyAscii = 0
End If
フォームロード時に Me.KeyPreview = True
そこで1つ気になる現象が起こっています。入力欄でIMEMode を個別に設定しているのですが、半角英数型の場合、漢字変換などする必要がないので 文字入力⇒エンター で次の欄へ移動するのがベストなのですが、 同じ設定のテキストなのに
文字入力⇒エンター(確定)⇒エンター(移動) という流れになってしまうテキストがあるのです。設定が全く同じだけにとても不思議な現象です。何が関係しているのでしょうか?よろしくお願い致します。
テキストボックスのIMEModeを半角英数でなくオフ固定(直接入力)にすればいいのでは?
半角英数ならその前のIMEModeがひらがなやカナであった時におっしゃる内容の動作になると思いますが。
那岐 様
ありがとうございます。一応うまくいきました。
しかし、IMEModeが英数半角に設定していて、直前の欄がひらがな設定だとしても
上記のような現象がおこるテキストとおこらないテキストがあったので少し疑問が残りますね。
なにわともあれ作成上は問題ないのでこれで行きます。
誰かこの現象の謎がわかる人がいましたらまた書き込みよろしくお願い致します。
那岐さんがのおっしゃっているのは
「3-オフ固定」で
「8-半角英数」とは違いますよ?
それはしっていますよ
>IMEModeが英数半角に設定していて、直前の欄がひらがな設定だとしても
>上記のような現象がおこるテキストとおこらないテキストがあったので
単にフォーカス移動するだけでは起こらないような気がします。
テキストエリアへの入力が発生して初めて上記の現象が起こるような
印象なんですがその辺りはどうでしょうか?
私は出来るだけ半角英数入力固定の時は「オフ固定」に設定するようにしています。
ツイート | ![]() |