オブジェクトのTableIndexについて

解決


かっつん  2005-04-22 20:21:11  No: 121163

お願いがございます。
VB.NETでフォームのボタンをクリックするとそれまでフォーカスを持っていたオブジェクトのTableIndexを取得したいのですが、どのようにコードを書けばいいのかわかりません。
教えてください。


特攻隊長まるるう  2005-04-22 23:27:14  No: 121164

>それまでフォーカスを持っていたオブジェクト
…の対象となるのがフォームの上に配置した全てのコントロールなら、
ベタなやり方として、全てのコントロールの 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


特攻隊長まるるう  2005-04-22 23:38:50  No: 121165

あ、一応ボタンクリックのコードは以下に修正しておいて下さい。
[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


かっつん  2005-04-25 22:06:53  No: 121166

返事が遅くなりました。
特攻隊長まるるうさん、ありがとうございました!


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

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






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