質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

解決済

【WinFormApp】controlのフォーカスが外れるタイミングで遷移先を制御したい

YanValCyn
YanValCyn

総合スコア11

VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

1回答

0リアクション

0クリップ

233閲覧

投稿2022/02/15 04:41

編集2022/02/15 05:14

お世話になります。
色々調べてみたのですが、どうしても分からなかったため、質問させて頂きます。
お知恵をお貸し頂ければ幸いです。どうぞ宜しくお願いします。

環境

Windows デスクトップアプリケーション
vs2013

実現したいこと

例えば、以下のようなフォームデザインを考えます。

イメージ説明

コード入力後、(DBに該当するコードがあれば)担当者名を呼び出し、部署欄に移動する、といった流れを想定しています。
イメージ説明

今回、追加で実装したいのは、「DBに該当するコードがない場合、担当者名をフリー入力できるようにする」です。
イメージ説明

これにあたり、 担当者コードが入力し終わって、Tabキーなどを使用して別のコントロールに移動するタイミングで、DBに該当するコードがあるかどうかの判定(以下、判定)を行い、

  • コードがあれば、部署欄に移動
  • コードがなければ、担当者名に移動

といった分岐を行いたいです。

試したこと


担当者コードのValidatingイベントで、担当者名のTabStopを切り替えれば遷移先が変化するのではないかと考えたのですが、Validatingイベントに入った時には既に遷移先のコントロールが確定しているようで、うまく行きません。

尚、一度担当者名に遷移した後、「判定」を行い、必要に応じて部署欄に移動するという制御は、担当者名のイベント(Enter、Leave等)が走ってしまうのがマズい場合があるので避けたいと考えています。


上記で試したことを踏まえ、TextChangedイベントで1文字入力される度に「判定」を行い、担当者名のTabStopを切り替えることも考えましたが、負荷もかかるためスマートではないのかな?という気がしています。

最後に

上記「試したこと」の①②以外に何か良い方法があれば伺いたいです。
もしなければ「無いだろう」というご回答もお待ちしております。

teratailで質問することに慣れていないため、何か気になる点などございましたら、ご指摘いただけるとありがたいです。
以上、どうぞ宜しくお願い致します。

以下のような質問にはリアクションをつけましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

リアクションが多い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。