Отмена выбора вкладки TabControl в VB.NET - PullRequest
4 голосов
/ 17 сентября 2010

На самом деле, мой мозг здесь просто потрясающий, и я уверен, что мне чего-то не хватает.

По сути, у меня есть форма с двумя вкладками.Я проверяю элементы управления на каждой вкладке, чтобы проверить, не загрязнены ли они, и не хочу, чтобы пользователь нажимал на вкладку, если на текущей вкладке есть изменения.

Я думал, проверю ли я грязную переменнуюи просто установить индекс вкладки на тот, который не был выбран, все будет в порядке, но каждый раз, когда я программно устанавливаю свойство вкладки, она запускает кучу событий вкладки, которые просто приводят к нежелательному результату, такому как правильный элемент управленияset показывается, но выбрана неправильная вкладка.

Вот код, настолько близкий, насколько я понял, чтобы заставить его работать.

Private Sub objTabs_Selected(ByVal sender As Object, ByVal e As System.Windows.Forms.TabControlEventArgs) Handles objTabs.Selected
    If bIsDirty Then
        If Me.objTabs.SelectedIndex = 1 Then
            Me.objTabs.SelectedTab = tabLetterofCreditBanks
            Me.objTabs.SelectTab(0)
        Else
            Me.objTabs.SelectedTab = tabWireTransferBanks
            Me.objTabs.SelectTab(1)
        End If
    End If
End Sub

Заранее спасибо.

1 Ответ

7 голосов
/ 17 сентября 2010

Попробуйте использовать событие Selecting вместо события Selected - это даст вам возможность переопределить поведение пользователя (т. Е. Установить TabControlCancelEventArgs.Cancel в True).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...