![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
VB6でマスタメンテ系のプログラムを作っています。
あるテキストボックスの内容によって、その次のテキストボックスの
入力可/不可を切り替えているのですが、1つ目のテキストボックス
に値を入力してリターンキーで移動すると、次のテキストボックスが
入力可であっても、タブはそれを飛ばしてその次の項目に位置づいて
しまいます。1つ目のテキストボックスに入力した後、イベントを
拾って、SetFocusか何かしてやらないといけないのでしょうか?
2つ目のテキストボックスに位置付ける方法があれば、アドバイス
いただければと思います。よろしくお願いします。
No.3ベストアンサー
- 回答日時:
Private Sub Text1_Change()
Select Case Text1
Case "1"
Text2.Enabled = False
Text3.Enabled = True
Case "2"
Text2.Enabled = True
Text3.Enabled = False
Case Else
Text2.Enabled = True
Text3.Enabled = True
End Select
End Sub
Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)
If (KeyCode = 13) Then
If (Text1 = "1") Then
Text3.SetFocus
Else
Text2.SetFocus
End If
End If
End Sub
というのはどうでしょう?
No.2の方の方法は、Text1入力時に、マウスで例えば終了ボタンを押すと終了できません。
LostFocusイベントでなく、Validateイベントで記述した方がいいのでは?
お返事ありがとうございます。
No.2の方法を試してみたのですけど、他のコントロールとの
相性(?)が悪くて暴走しちゃうのでアウトでした。
たぶん、コントロールの方がおかしいようです。
(ステップ実行だと上手くいくんですけど、exeだとダメなんです。)
上記の方法もチャレンジしてみますね。
No.4
- 回答日時:
>相性(?)が悪くて暴走しちゃうのでアウトでした。
>たぶん、コントロールの方がおかしいようです。
>(ステップ実行だと上手くいくんですけど、exeだとダメなんです。)
コマンドボタン・オプションボタン・ラジオボタン・タブコントロール
などは、全てのキーイベントを発生させるわけではありません。
ステップ実行だと、プログラムで書いた命令だけが実行され、VBのバグは隠れます。
だから思うような結果が得られます・・・^^;
さらに上記のコントロール類はTABINDEXを無視した順番にフォーカスが当たる原因となります。
他のスレにも書いたのですが、VB任せのフォーカス順ははっきり言ってお勧めできないと思っております。
それと#3さんが言われているLostFocusイベントでセットフォーカスイベントを発生させるのは・・・フォーカス無限ループになる要素が強いような・・・
GotFocusで操作するのであれば、LostFocusにはSotFocusを書き込まないなどのルールを決めないと、マウス操作でフォーカスを移動したときに怖い思いをするような気がします。現在の状況では、運用カバーでしか・・・
APIが可能であればSetWindowsHookExで・・・点々々
参考URL:http://oshiete1.goo.ne.jp/kotaeru.php3?q=199683
お返事ありがとうございます。
Focusをいじるのは、いろいろ無限ループの可能性が出てくるんですね。
勉強になりました。
結局。。。
keydownでは、Enterキーが取得できず(取得できない条件にはなってない
はずなんですけど、これもユーザーコントロールのせいかも?)、
SetFocusが書けなかったのですが、changeイベントでEnableを切り替えた
後は、TabIndexにお任せすると何とか思ったようになりました。
みなさま、ありがとうございました。
No.2
- 回答日時:
>値を入力してリターンキーで移動すると
>タブはそれを飛ばして
textboxは「エンタキーを押した」というイベントはありましたっけ。私はそれがあれば良いなといつも思っているのですが。それと「タブは」とはどういう関連ですか
ともあれ(1)別のボタン等をクリックしたときにTextの
値を取る(2)別のTextも含めLostFocusで採るしかないのでは。
Private Sub Text1_LostFocus()
If Text1.Text = "1" Then
Text2.Text = ""
Text2.Enabled = False
Text3.SetFocus
Else
Text2.Enabled = True
Text2.Text = ""
Text2.SetFocus
End If
End Sub
お返事ありがとうございます。
「タブ」はカーソルのことを言ったつもりでした。
要は、1つめの項目が1なら2つめの項目が入力可、2なら2つめの項目は
入力不可という処理をしていて、2つめの項目が入力不可状態だったときに
1つめの項目に1を指定しても、入力してリターンキーを押すと2つめの項目
は入力可の状態にはなるものの、カーソルはそれを飛ばして3つめに行って
しまうんですよね。それを何とか2つめに行かせたいと・・・。
アドバイスしてもらった方法を試してみますね。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ExcelVBAでユーザーフォームでテキストボックスなどからセルに連続して入力するコーディングの際の 2 2022/06/29 22:51
- Access(アクセス) アクセス 意図せずサブプロシージャを移動してしまうのを止めたい 1 2022/09/02 09:19
- Visual Basic(VBA) ユーザーフォームで銀行に対応した支店コードの入力ができません Sheet1のA列に銀行名、B列に銀行 5 2022/07/28 17:50
- Visual Basic(VBA) テキストボックスの値を該当セルに登録する方法 2 2022/11/23 18:47
- Visual Basic(VBA) テキストボックス1の値に対するテキストボックス2に表示する値 1 2022/04/05 14:35
- Visual Basic(VBA) 検索 3 2022/12/14 18:21
- その他(Microsoft Office) エクセルのマクロを教えてください。 1 2023/01/27 09:05
- Visual Basic(VBA) Excel VBA 複数選択したリストボックスからテキストボックスに転記したいです。 3 2023/03/19 18:31
- C言語・C++・C# C#テキストボックスの文字を配列にいれてその後表示する 4 2022/07/17 04:47
- その他(Microsoft Office) パワーポイントやワード、エクセルでのスライドショーやテキストの微調整について 1 2023/01/12 05:50
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
どこにもフォーカスを当てたくない
-
中古本の店名ハンコの消し方
-
他の人には声だして挨拶してる...
-
矢印(左右)キーでイベントを...
-
池袋サンシャイン通りでキャッ...
-
『エッジの効いた○○』の意味。
-
コマンドボタンのEnterイベント...
-
C# ReadOnlyのTextBoxで
-
炊飯器のセットの音と出来上が...
-
油性マジックの消し方
-
GridViewでハイライトを使用し...
-
VLCの再生時の色がおかしく...
-
ゆっくりムービーメーカーでセ...
-
メッセージボックスを前面に表...
-
デジタルパンフレットなるもの...
-
DAMのデンモクの使い方
-
Googleフォト内データをバック...
-
パソコンの液晶画面にマジック...
-
Windows7でクリップボードを開...
-
TDSマジックランプシアター 箱...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
どこにもフォーカスを当てたくない
-
C# ReadOnlyのTextBoxで
-
業務に差し支えのないテンキー...
-
他の人には声だして挨拶してる...
-
エクセルVBA テキストボックス...
-
矢印(左右)キーでイベントを...
-
コマンドボタンのEnterイベント...
-
ユーザーフォームのSetFocusが...
-
Accessの更新後処理で特定の条...
-
GridViewでハイライトを使用し...
-
VBAのExitイベントについて
-
テキストボックス入力後、警告...
-
『エッジの効いた○○』の意味。
-
VB.NET ボタン押下で一つ前の...
-
フォーカスを移動させない方法
-
スプレットシートでフォーカス...
-
二台のノートパソコンを繋げて...
-
炊飯器のセットの音と出来上が...
-
小学校で遊ぶてんかのルールに...
-
MFCでコンボボックスを選択不可...
おすすめ情報