2016-10-11 2 views
0

Ein Programm mit einem Formular und einem TabControl. Ich brauche zu handhaben, was passiert, wenn der Benutzer das Formular schließen nach dem aktiven TabControlPageFall auswählen, um aktive TabPage zu behandeln

mit Bei der Arbeit - dann so

If PanelChooserTabControl.SelectedTab Is SelectionTabPage Then 
    'What I want 
End If 

If PanelChooserTabControl.SelectedTab Is EditionTabPage Then 
    'The user can´t leave 
    e.Cancel = True 
End If 

Aber ich will mehr TabPages haben, und ich möchte den Code einfach machen mit Select Case

Dim TabPageActive As String = PanelChooserTabControl.SelectedTab.ToString 
Select Case TabPageActive 
    Case "TabPage:{SelectionTabPage}" 
     'What I want 
    Case "EditionTabPage" 
     'What I want 
End Select 

Aber die TabPageActive Variable wird mit so etwas wie TabPage geladen: {SelectionTabPage}

und nicht nur "SelectionTabPage". Auch die Verwendung von TabPage: {SelectionTabPage} als Case-Variable (wie der Beispielcode) funktioniert nicht.

Muss ich eine weitere Zeichenfolgenkonvertierung durchführen oder trimmen?

+1

Warum nicht stattdessen 'SelectedIndex' einschalten? – jmcilhinney

+0

@jmcilhinney Weil eine Zahl weniger beschreibend ist als der Text. Danke für den Tipp – fedeteka

+1

Also füge einen Kommentar hinzu. Du hast sowieso Strings benutzt, also ist ein Kommentar genauso gut. – jmcilhinney

Antwort

1

können Sie versuchen, so etwas wie:

Select Case True 
    Case PanelChooserTabControl.SelectedTab Is SelectionTabPage 
    Case PanelChooserTabControl.SelectedTab Is EditionTabPage 
    ... 
End Select 

oder auf tabpage Indexänderung speichern als Enum der Seite und benutzen Sie diese Enumeration im Fall.

+1

Sie sollten wahrscheinlich Beispiele der Fälle bereitstellen, da es möglicherweise nicht offensichtlich ist. – jmcilhinney

+1

Ich habe die Antwort versehentlich vorher fertig gestellt. ;-) – shadow

+0

@shadow Deine Lösung war was ich brauchte ... und wirklich einfach. Das erste Mal lese ich über die Verwendung von Select Case True. Vielen Dank. – fedeteka