2016-10-11 2 views
0

Программа с формой и TabControl. Мне нужно обрабатывать то, что происходит, когда пользователь закрывает форму в соответствии с действующим TabControlPageВыберите Случай для обработки активных TabPage

работает с If - Тогда как этот

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 

Но у меня будет больше TabPages, и я хочу, чтобы легко код с 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 

Но TabPageActive переменная загружается с чем-то вроде TabPage: {} SelectionTabPage

и не только «SelectionTabPage». Даже использование TabPage: {SelectionTabPage} в качестве переменной Case (например, код примера) не работает.

Должен ли я сделать другое преобразование строки или обрезку?

+1

Почему бы не включить 'SelectedIndex' вместо этого? – jmcilhinney

+0

@jmcilhinney Потому что число менее наглядное, чем текст. Спасибо за подсказку – fedeteka

+1

Итак, добавьте комментарий. В любом случае вы использовали строки, поэтому комментарий так же хорош. – jmcilhinney

ответ

1

Вы можете попробовать что-то вроде:

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

или изменения индекса TabPage сохранить как перечисление страницы и использовать это перечисление в случае.

+1

Возможно, вы должны привести примеры случаев, поскольку это может быть не очевидно. – jmcilhinney

+1

Я случайно отправил ответ до завершения. ;-) – shadow

+0

@shadow Ваше решение было тем, что мне было нужно ... и действительно просто. Впервые я прочитал об использовании Select Case True. Благодарю. – fedeteka

Смежные вопросы