TabControl1.Selected und MSGBOX

PhoenixDH

Erfahrenes Mitglied
Hallo zusammen,

ich habe ein kleines Problem, und zwar:

Ich löse das Event
Code:
Private Sub TabControl1_Selected(ByVal sender As Object, ByVal e As TabControlEventArgs) Handles TabControl1.Selected
...
End Sub
aus.

Darin habe ich die Abfrage, das webnn das Tab mit Index 1 aufgerufen wird, eine MSGBOX erscheinen soll. Das ganze funktioniert auch, aber leider kommt erst die Messagebox, aber das Tab wird noch nicht gewechselt. Es wird erst gewechselt wenn ich auf einen Button klicke.

Hier die Box:
Code:
If MsgBox("Extract selected rar archive to server?", MsgBoxStyle.Question Or MsgBoxStyle.OkCancel, "Security acknowledge") = MsgBoxResult.Ok Then
...
End If

Kann mir wer helfen?

Danke!
 

DrSoong

Iss was, Doc!
2 Lösungen:

1) Du verwendest TabControl.Selected um den Index zu bekommen und TabControl.SelectedIndexChanged um den Index zu prüfen und die Meldung zu zeigen:
Code:
    Private Sub TabControl1_Selected(ByVal sender As Object, ByVal e As System.Windows.Forms.TabControlEventArgs) Handles TabControl1.Selected
        iIndex = e.TabPageIndex
    End Sub

    Private Sub TabControl1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles TabControl1.SelectedIndexChanged
        If iIndex = 1 Then MsgBox("Gewählt")
    End Sub

2) Du verwendest das Paint-Event der jeweiligen Tab-Page:
Code:
    Private Sub TabPage2_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles TabPage2.Paint
        MsgBox("Gewählt")
    End Sub


Der Doc!
 

Shakie

Erfahrenes Mitglied
2) Du verwendest das Paint-Event der jeweiligen Tab-Page:
Code:
    Private Sub TabPage2_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles TabPage2.Paint
        MsgBox("Gewählt")
    End Sub
Das Paint-Event tritt aber auch unter anderen Bedingungen ein, nicht nur dann, wenn der Tab ausgewählt wurde. Beispielsweise tritt Paint dann ein, wenn der Tab bereits ausgewählt ist und dann ein anderes Fenster (der selbern oder einer anderen Anwendung, z.B. Browser) den Tab verdeckt und anschließend wieder frei gibt. Daher würde ich das Paint-Ereignis nicht verwenden.