
VB開発初心者です。
VB.NETでWindowsMobile5.0開発してます。
.NETCONPACTFreameWork2.0です。
TABキーで移動するように
ボタンクリックイベントで次のコントロールへFocusを移動させたいのですがうまく行きません。
下記の記述すればOKだと思いましたが、
Me.SelectNextControl(Me.ActiveControl, True, True, True, True)
ActiveControlを.NETCONPACTFreameWorkがサポートしてませんでした。
ほかに良い方法ありませんでしょうか?
宜しくお願いします。
No.3ベストアンサー
- 回答日時:
> ctlPrevはプライベート変数なので
これではダメですね
『プライベート変数』という表現もおかしいと思います
本来は『ローカル(局所)変数』とすべきでしょう
『フォームクラスのスコープを持つ変数』としてctlPrevを宣言しましょう
PublicでもPrivateでもProtectedでも構いません
早速の回答ありがとうございます。
下記のように記述しうまく行きました。
Public Class SetForm
Public ctlPrev As Control
Private Sub TextBox_LostFocus(ByVal sender As Object, ByVal e As EventArgs) Handles TextBox1.LostFocus, TextBox2.LostFocus, TextBox3.LostFocus, TextBox4.LostFocus, TextBox5.LostFocus, TextBox6.LostFocus
'MessageBox.Show("LostFocusイベントが発生しました。")
ctlPrev = CType(sender, Control)
End Sub
お陰様でいつも助かっております。
ありがとうございました。
No.2
- 回答日時:
LostFocusイベントが発生しいた時点でフォーカスを持っているのは引数で示されたSenderオブジェクトになると思います
Me.SelectNextControl( Sender, True, True, True, True )
でいいように思いますが
これでは支障が出るのでしょうか?
回答、誠にありがとうございます。
自分の考え方を纏めてみます。
LostFocusイベントで
TextBox1コントロールをctlPrevに格納し、
ボタンクリックイベントで
Me.SelectNextControl(ctlPrev , True, True, True, True)
と考えて下記のように記述しましたがctlPrevはプライベート変数なのでボタンクリックイベントで使えませんでした。
この考え方で正しいでしょうか?
またこのような場合どうすればいいんでしょうか?
初歩的な質問かもしれませんがご教授のほどよろしくお願いします。
Private Sub TextBox1_LostFocus(ByVal sender As Object, ByVal e As EventArgs)
MessageBox.Show("LostFocusイベントが発生しました。")
Dim ctlPrev As Control
ctlPrev = CType(sender, Control)
End Sub
Private Sub Button51_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button51.Click
Me.SelectNextControl(ctlPrev , True, True, True, True)
End Sub
No.1
- 回答日時:
フォームクラスの変数に
dim ctlPrev as Control
を追加
フォーカスを制御したいコントロールの LostFocusイベントを処理して
ctlPrev = CType(Sender,Control)
としておきます
次への処理で
Me.SelectNextControl( ctlPrev, True, True, True, True)
としてやればいいのではないでしょうか
ActiveControlを使ってボタンClickイベントでの処理ではそのボタンの次のTabStopのコントロールにしか移動できません
Clickした時点でActiveControlが移動してしまうため …
いつもお世話になっております。
LostFocusを行って次の処理を考えておりますが、
現在のFocusの位置を知るにはどうすればいいんですか?
Me.SelectNextControl(”現在のフォーカス位置”, True, True, True, True)
とすれば次のコントロールへFocusが移動するはずですが・・・
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
VB.NET ボタン押下で一つ前のコントロールへ
Visual Basic(VBA)
-
ボタンにセットフォーカスするとクリックしたようになってします。
Visual Basic(VBA)
-
VB.netでメソッドからコントロールを取得
Visual Basic(VBA)
-
-
4
矢印(左右)キーでイベントを発生させたい。
Visual Basic(VBA)
-
5
SPREAD(GrapeCity)のセルにフォーカスを設定するにはどうしたらいいのでしょうか?
Visual Basic(VBA)
-
6
VB.NETで小数点以下の桁数を取得したい
その他(ソフトウェア)
-
7
どこにもフォーカスを当てたくない
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
他の人には声だして挨拶してる...
-
どこにもフォーカスを当てたくない
-
C# ReadOnlyのTextBoxで
-
MFCでコンボボックスを選択不可...
-
酸素ボンベのレギュレーターか...
-
DateTimePicker のEnable
-
テキストボックスの入力チェッ...
-
他simとの2枚挿し
-
テキストボックス入力後、警告...
-
油性マジックで書いたサインを...
-
Accessの更新後処理で特定の条...
-
Windowsアプリケーションのフォ...
-
Private Sub内でSubをCallしたい
-
アイソメトリックのイラストを...
-
業務に差し支えのないテンキー...
-
コマンドボタンのEnterイベント...
-
VB.NET ボタン押下で一つ前の...
-
ユーザーフォームのSetFocusが...
-
エクセルVBA テキストボックス...
-
池袋サンシャイン通りでキャッ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
どこにもフォーカスを当てたくない
-
他の人には声だして挨拶してる...
-
C# ReadOnlyのTextBoxで
-
ユーザーフォームのSetFocusが...
-
矢印(左右)キーでイベントを...
-
業務に差し支えのないテンキー...
-
Private Sub内でSubをCallしたい
-
エクセルVBA テキストボックス...
-
GridViewでハイライトを使用し...
-
テキストボックス入力後、警告...
-
プログラムからTera Termに文字...
-
コマンドボタンのEnterイベント...
-
MFCでコンボボックスを選択不可...
-
VB.NET ボタン押下で一つ前の...
-
油性マジックで書いたサインを...
-
Accessの更新後処理で特定の条...
-
DateTimePicker のEnable
-
スプレットシートでフォーカス...
-
VC++2010のラジオボタンの選択...
-
油性マジックの消し方
おすすめ情報