ボタン押下後にフォーカスを戻すには?

解決


なかじ  2007-01-16 07:08:12  No: 97645

テキストボックスが複数あり、ボタンを押し、処理をさせ、フォーカスのあったテキストボックスにフォーカスを戻したいです。
(ボタンをメニューみたいに使用したい)

なので、初心者ながらに考えたのが、
○全てのテキストボックスのLeaveイベントにオブジェクト取得を埋め込む
○UpdateDefaultButtonをオーバーライドし、オブジェクト取得をする
どちらかを行ったあと、取得したオブジェクトにフォーカスを返す
と言うやり方です。

現在、後者の方で、やってはいますが、
他に何か簡単な方法があるのではと、投稿させていただきました。

初心者で誠に申し訳ありませんが、どなかご教授願えたらと思います。
よろしくお願い致します。


 2007-01-16 11:44:25  No: 97646

ボタンなのかTextBoxなのか良くわかりませんが、
そんな面倒なことをしなくても、ひとつのイベントハンドラーに
複数のイベントを関連付ければいいだけでは。たとえば...
    Dim rtText As TextBox
    Private Sub Text_Leave(ByVal sender As Object, ByVal e As System.EventArgs) _
        Handles TextBox2.Leave, TextBox1.Leave, TextBox3.Leave
        rtText = DirectCast(sender, TextBox)
    End Sub
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        rtText.Focus()
    End Sub


我龍院  2007-01-16 11:46:38  No: 97647

又やってしまった。
我->我龍院


なかじ  2007-01-18 02:12:08  No: 97648

早速の回答ありがとうございます。

返事が遅くなりまして申し訳ありません。

やはりイベントでなんとかするしかないんですね。
ありがとうございます、自分に自信がつきました!


なかじ  2007-01-18 02:12:34  No: 97649

解決チェックするの忘れてました。


我龍院  2007-01-18 09:07:25  No: 97650

>やはりイベントでなんとかするしかないんですね。
Visualxxxはコンソールアプリケーソン等の場合を除き、
イベントドリブンの開発ツールなんで、ほとんどの場合
"イベントでなんとか"します。
TextBox等のコントロールが多い場合は、オブジェクトの
配列とEnumを併用すると、コードが短くなったり、読み
易くなります。


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

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







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