• ベストアンサー

VBのフォーカスの移動について教えてください

はじめたばかりの初心者ですが、よろしくお願いします。 商品名の一覧のリストボックスを表示し、商品コードを入力するテキストボックスと商品名を表示させるラベルをそれぞれ三つづつ用意し、テキストボックスへ商品コードの入力、またはリストボックスの商品名のクリックでラベルに商品名を表示するようにしたいのですが、まず最初にテキストボックス1にフォーカスを移します。そしてそこでリストボックスの商品名をクリックすると、そこにフォーカスが移ってしまいます。 リストボックスをクリックしたあと、自動的に元のテキストボックス1 (元のフォーカスがテキストボックス2にあったときにはテキストボックス2に) にフォーカスを戻すにはどのようにすればいいのでしょうか。 サンプルコードで教えて頂けたら有難いのですが。

質問者が選んだベストアンサー

  • ベストアンサー
  • sakamaro
  • ベストアンサー率44% (4/9)
回答No.2

基本的には1の方と同じ考えですが、 コントロール配列を使用した場合は、こうなります。 Private iTxtIdx As Integer Private Sub List1_Click()   textbox(iTxtIdx).SetFocus End Sub Private Sub textbox_LostFocus(Index As Integer)   iTxtIdx = Index End Sub

fuusan
質問者

お礼

どうもありがとうございます。 初めての投稿でしたが、早速御返信に感謝いたします。 コードの意味もまだ理解しがたい状況なのですが、ご指導のようにやってみたいとおもいます。 今後もよろしくお願い致します。

その他の回答 (1)

  • wildcard
  • ベストアンサー率54% (54/100)
回答No.1

VBのVerが分からないので、これで大丈夫かどうかはわかりませんが… VB5だと下記のようなコードで大丈夫でした。 なおList1は「商品名の一覧のリストボックス」Text1と2は「商品コードを入力するテキストボックス」とお考え下さい。 Public i As Integer Private Sub List1_GotFocus()   Select Case i     Case 1: Text1.SetFocus     Case 2: Text2.SetFocus   End Select End Sub Private Sub Text1_LostFocus()   i = 1 End Sub Private Sub Text2_LostFocus()   i = 2 End Sub

fuusan
質問者

お礼

どうもありがとうございます。 初めての投稿でしたが、早速御返信に感謝いたします。 コードの意味もまだ理解しがたい状況なのですが、ご指導のようにやってみたいとおもいます。 今後もよろしくお願い致します。

関連するQ&A

  • フォーカスを移動させない方法

    エクセル2003のユーザーフォームにリストボックス1、リストボックス2、テキストボックス1、コマンドボタン1(シート転送用)を作成しました。(タブオーダーはこの順になってます。) 転送用ボタンは最後にクリックしますが、前3個のコントロールの操作の順番はどれでも可能にしたいと思います。ただしテキストボックスは入力の都度クリックしなくてよいようにフォーカスを常駐させたいのです。どなたか簡単な方法を教えてください。

  • フォーカスを移動させない方法

    エクセル2003のユーザーフォームにリストボックス1、リストボックス2、テキストボックス1、コマンドボタン1(シート転送用)を作成しました。(タブオーダーはこの順になってます。) 転送用ボタンは最後にクリックしますが、前3個のコントロールの操作の順番はどれでも可能にしたいと思います。ただしテキストボックスは入力の都度クリックしなくてよいようにフォーカスを常駐させたいのです。どなたか簡単な方法を教えてください。

  • 「SubmitせずにJavaScriptからCGIを呼び出して結果をH

    「SubmitせずにJavaScriptからCGIを呼び出して結果をHTML上に表示したい」 HTMLファイル上にテキストボックスとそれと対になるラベル(ラベルじゃなくても良いのですが。。)のセットがいくつかあります。 テキストボックスにコードを入力したら、ラベルにそのコードに対応する商品名を表示したいと思っています。 テキストボックスにコードを入力後、フォーカスが離れたら(Onchangeで)JavaScriptでそのコードの値を取得し、そのデータをCGIに渡してサーバにあるDBに接続し、その結果をHTML上のラベルに表示したいと思います。 Sbmitせずにフォーカスが離れた場合に、データをCGIに受け渡し、そのデータを画面遷移しないで、HTML上に表示するのはどのようにすればいいのでしょうか。 また、上記のことをJavaScriptとCGIだけでできるのでしょうか。 教えてください。 よろしくお願い致します。

  • 「SubmitせずにAjaxからCGIを呼び出して結果をHTML上に表

    「SubmitせずにAjaxからCGIを呼び出して結果をHTML上に表示したい」 HTMLファイル上にテキストボックスとそれと対になるラベル(ラベルじゃなくても良いのですが。。)のセットがいくつかあります。 テキストボックスにコードを入力したら、ラベルにそのコードに対応する商品名を表示したいと思っています。 テキストボックスにコードを入力後、フォーカスが離れたら(Onchangeで)Ajaxでそのコードの値を取得し、そのデータをCGIに渡してサーバにあるDBに接続し、その結果をHTML上のラベルに表示したいと思います。 Sbmitせずにフォーカスが離れた場合に、データをCGIに受け渡し、そのデータを画面遷移しないで、HTML上に表示するのはどのようにすればいいのでしょうか。 Ajaxを使えばいいと教わったのですが、色んなサイトを調べてみたのですが、Ajaxが初心者で、よくわからず、コードなどございましたら教えて頂けましたら嬉しいです。 よろしくお願い致します。

    • ベストアンサー
    • AJAX
  • VB6.0 コンボBOXからのリスト表示について

    たとえば画面からの伝票入力処理などで... 「商品コード」の入力域を、コンボBOXにして、直接手入力でも、リストからの マウスクリック選択でも入力できるようにするとします。 この様な場合リストには、通常は「商品マスタ」の「商品コード」を、リスト表示 しますね。 実は今回、このリストにコードだけでなく横に並べて「商品名」も表示したいの です。もちろん「商品マスタ」に「商品名」を持っているものとします。 但し、もともとのコンボBOXの幅はコード文字数分のみとし、「商品名」分の 長さは、取っていないものとします。 以上、Accessでは標準機能で当たり前のように簡単にできる事ですが、 VB6.0ではどうなのでしょうか? 出来るのであれば、教えて下さい。

  • リストボックスをクリックすると、他フォームに値代入

    データベース超初心者です。VBAの知識がほとんどないので、初歩的な質問だと思いますが、よろしくお願いします。 フォームは2つ「入力」と、「コード選択」 (1)フォーム「入力」にあるテキストボックス「商品コード」をダブルクリックすると、フォーム「コード選択」を開く (2)フォーム「コード選択」にあるリストボックス「コードリスト」をダブルクリックすると、商品コードが、フォーム「入力」のテキストボックス「商品コード」に代入される。 ちなみに、コードリストは、2列で、商品コードと商品名が表示されるようになっています。 わかりにくい質問かもしれませんが、どうぞよろしくお願いします。

  • iPhoneアプリの作成でフォーカスの合わせ方

    iPhoneアプリを作成しています。 画面が表示された時に、テキストフィールドをデフォルトでフォーカスを合わせたいのですが、 その方法が分からず困っております。 iPhoneの時計アプリに、やりたい事のサンプルがあります。 「時計起動」→「アラーム」→右上の「+」→ラベルをクリック →この時、ラベル入力画面が表示されますが、テキストフィールドにフォーカスが合ってます。 これをやりたいのです。 (添付の画像) 画面もアプリも完成していて、このフォーカスを合わせるところだけ、実装がまだという状態です。 以下のサイトは参考にしたのですが、よく分かりませんでした。 http://kuar.blog.shinobi.jp/Entry/418/ どなたかご存知あれば、教えて頂けませんでしょうか。

  • フォーカスの移動

    IMEソフトキーボードのようなものを作っています。 フォーム1にテキストボックスがあり、フォーム2をソフトキーボード。というように作りたいと思っているのですが問題があります。 コマンドボタンを押すごとに1文字ずつ送るような作りになっているのですが、1文字ごとにテキストボックスからコマンドボタンにフォーカスが移るため、2文字以上の文字列の変換ができないのです。VB的に無理なのかもしれないですが、IMEソフトキーボードのようにテキストボックスにフォーカスをセットしたままの文字入力を出来ないでしょうか?ちなみにkeybd_eventを使っています。 時間がありましたら、ご教授のほどよろしくお願いします。

  • VBで商品管理

    こんにちは。VBを使って簡単な商品管理を作りたいと思います。メインのページに在庫一覧(商品名と在庫数をクリックすると商品名と在庫数がテクストボックスに表示されるようにしたいです。)売上計算商品名と単価を選択して個数を入力し、テキストボックスに「商品名を○個お買い上げで○○円です。と表示したいです。)と終了(VBが閉じるようにしたいです。)のコマンドボタンを配置したいです。 どうやって作っていったらいいのでしょうか? アドバイスお願いします。

  • javascriptでフォーカスしたい

    初質問です。 javascriptで たくさんあるテキストボックスの中のひとつをフォーカスした後に リンクのようになっている文字をクリックするとさっきフォーカスした テキストボックスに内容(そのリンクのURLなど)が 自動的に入力されるようなことは、できませんか?

専門家に質問してみよう