お願いがございます。
VB.NETでフォームのボタンをクリックするとそれまでフォーカスを持っていたオブジェクトのTableIndexを取得したいのですが、どのようにコードを書けばいいのかわかりません。
教えてください。
>それまでフォーカスを持っていたオブジェクト
…の対象となるのがフォームの上に配置した全てのコントロールなら、
ベタなやり方として、全てのコントロールの Control.Enter イベント
で、そのコントロールの参照を Control クラスの変数に格納しておく
事でしょう。(ただし、当然ながら、クリックするボタンの Enter イベント
は除きます)
>TableIndex
→ TabIndex ?
[VB.NET]
Private myControl As Control
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
MessageBox.Show(Me.myControl.Name & " : " & Me.myControl.TabIndex)
End Sub
Private Sub TextBox1_Enter(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox1.Enter
Me.myControl = Me.ActiveControl()
End Sub
Private Sub TextBox2_Enter(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox2.Enter
Me.myControl = CType(sender, Control)
End Sub
Private Sub TextBox3_Enter(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox3.Enter
Me.myControl = Me.TextBox3
End Sub
あ、一応ボタンクリックのコードは以下に修正しておいて下さい。
[VB.NET]
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
If Me.myControl Is Nothing Then
MessageBox.Show("何も選択されていませんでした。")
Else
MessageBox.Show(Me.myControl.Name & " : " & Me.myControl.TabIndex)
End If
End Sub
返事が遅くなりました。
特攻隊長まるるうさん、ありがとうございました!
ツイート | ![]() |