2014-10-06 3 views
-1

Таким образом, некоторые из моих прошлых вопросов заставили меня потерять репутацию ... Выслушай меня ... СпасибоVb.net Как programically выбрать последнюю вкладку в TabControl

Я делаю веб-браузер, который имеет TabControl, и я могу все работать, но когда я нажимаю кнопку «Новая вкладка», он создает новую вкладку с веб-браузером, но мне нужно вручную выбрать эту новую вкладку, чтобы изменить адрес. Я хочу, чтобы при нажатии кнопки «Новая вкладка» она автоматически перенаправляет меня на новую вкладку, а не на текущую вкладку. Я посмотрел на «SelectedIndex», но это не лучший способ изменить выбранную вкладку.

В Summmary Когда я нажимаю Новая вкладка это ...

  1. Создает новую вкладку в КОНЦЕ вкладок с URL равным приблизительно: пустой
  2. не делает изменить выбранную вкладку на «вновь созданной закладке»

Вот код кнопки New Tab

Private Sub btn_NewTab_Click(sender As Object, e As EventArgs) Handles btn_NewTab.Click 
    AddTab("about:blank", TabControl1) 
End Sub 

Код Sub AddTab ниже

Public Sub AddTab(ByRef URL As String, ByRef TabControl As TabControl) 
    Dim NewBrowser As New CustomBrowser 
    Dim NewTab As New TabPage 
    NewBrowser.Tag = NewTab 
    NewTab.Tag = NewBrowser 
    TabControl.TabPages.Add(NewTab) 
    NewTab.Controls.Add(NewBrowser) 
    NewBrowser.Dock = DockStyle.Fill 
    NewBrowser.Navigate(URL) 

End Sub 

Если вам нужно, чтобы посмотреть на более кода, то он ссылку на весь код позади веб-браузер Full Code

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

Обновление: Я пытался добавить

TabControl.SelectedIndex = TabControl.TabPages.Count - 1

к югу AddTab и я получаю сообщение об ошибке, что выдвигает на первый план

Private Sub TabControl1_SelectedIndexChanged (отправитель As Object, e As EventArgs) Ручки TabControl1.SelectedIndexChanged Dim WB As Cust omBrowser = Me.TabControl1.SelectedTab.Tag Me.cbURL.Text = WB.Url.ToString

End Sub 
+1

Что означает, что 'SelectedIndex' _« кажется, не лучшим образом»_ –

+0

SelectedIndex - Вы должны назначить на целое число каждой вкладку?. Поскольку я не знаю, сколько вкладок пользователь создает, это не лучший ответ (Плюс я не совсем понимаю).В Сводке все, что я хочу, чтобы кнопка вкладки добавления делать, это создать новую вкладку и выбрать эту вкладку. –

+0

Нет, см. Мой ответ ниже, где я показываю, как вы выбираете последнюю вкладку. Вам не нужно назначать целое число, 'SelectedIndex' начинается с 0 и заканчивается' tabControl.TabPages.Count-1'. –

ответ

1

Я не wknow что с TabControl.SelectedIndex=TabControl.TabPages.Count-1, но вы также можете использовать TabControl.SelectTab:

Public Sub AddTab(ByRef URL As String, ByRef TabControl As TabControl) 
    Dim NewBrowser As New CustomBrowser 
    Dim NewTab As New TabPage 
    NewBrowser.Tag = NewTab 
    NewTab.Tag = NewBrowser 
    TabControl.TabPages.Add(NewTab) 
    NewTab.Controls.Add(NewBrowser) 
    NewBrowser.Dock = DockStyle.Fill 
    NewBrowser.Navigate(URL) 

    TabControl.SelectTab(NewTab) 
End Sub 
+0

Извините неправильно Ошибка - я получаю другая ошибка, которая является необработанным исключением типа «System.NullReferenceException» произошла в Neville Net.exe Дополнительная информация: Ссылка на объект не установлена ​​в экземпляр объекта. Он также выделяет некоторые из моего кода, который является «Private Sub TabControl1_SelectedIndexChanged (отправитель как объект, e As EventArgs). Ручки TabControl1.SelectedIndexChanged Dim WB As CustomBrowser = Me.TabControl1.SelectedTab.Tag Me.cbURL.Text = WB.Url .ToString End Sub ' –

+0

Что такое 'Nothing',' Me.TabControl1.SelectedTab' или 'Me.cbURL' или' WB' или 'WB.Url'? Используйте отладчик. –

+0

Извините, cbURL - это поле Combo, которое является адресной строкой. WB - это пользовательский веб-браузер, поэтому это означает, что WB - это веб-браузер, а WB.Url - текущий URL-адрес веб-браузеров. Чтобы понять код, немного больше здесь ссылка на исходный код [Исходный код] (http://lobsterproductions.weebly.com/uploads/1/9/5/1/1951779/tabbed_webbrowser.txt) –

0
 Dim i As Integer 
     i = yourForm.TabControl.TabPages.Count 
     yourForm.TabControl.SelectedIndex = i - 1 
Смежные вопросы