2010-03-25 5 views
1

J'ai un formulaire avec un tabcontrol et 4 onglets. Je veux ouvrir un formulaire avec showdialog dans un onglet prédéterminé.Comment ouvrir un formulaire dans un onglet déterminé? vb .net

J'ai essayé

OptionsForm.OPTS_TabControl1.SelectTab(1) 
    OptionsForm.OPTS_TabControl1.ShowDialog() 

mais cela n'a pas fonctionné.

Une aide? merci

+0

Que voulez-vous dire exactement par "n'a pas fonctionné"? Le formulaire n'a-t-il pas été montré? Le formulaire a-t-il été affiché mais l'onglet n'a pas été sélectionné? –

+0

Il a jeté un NullReferenceException – Ellome

Répondre

1

Premiers vœux pour l'utilisation de Stackoverflow. Il montre que vous avez fait attention à class = D

concernant votre question, ce morceau de code que vous avez montré devrait fonctionner. Vous devriez fournir l'erreur réelle afin que nous puissions essayer de comprendre.

OptionsForm fait-il référence à la classe ou à un objet d'une classe que vous avez créée?

Quoi qu'il en soit, essayez de créer un objet de la forme, puis définissez l'onglet de départ, comme celui-ci:

Dim OptionsObject As New OptionsForm 
OptionsObject.OPTS_TabControl1.SelectTab(1) 
OptionsObject.OPTS_TabControl1.ShowDialog() 

Une autre solution pourrait être la méthode ShowDialog Surcharge, bien qu'il semble sorte d'augets.

Voici comment: l'intérieur de votre code OptionsForm:

Public Overloads Sub Showdialog(ByRef TabNumber As Integer) 

OPTS_TabControl1.SelectTab(TabNumber) 

Return MyBase.ShowDialog() 

puis appelez le formulaire en utilisant

optionsform.showdialog(1) 

Note: La surcharge crée essentiellement une autre instance d'un subrotine qui accepte différents arguments. lisez les pages 342-358 du manuel si vous souhaitez en savoir plus.

+0

il a travaillé avec la première solution que vous avez donnée. Merci! – Ellome

1

Étant donné que vous obtenez un NullReferenceException, vous devez séparer l'appel pour voir où se trouve l'objet null. Le contrôle de tabulation est-il nul?

+0

si je commente la première ligne: OptionsForm.OPTS_TabControl1.SelectTab (1) il ouvre ok (dans le mauvais onglet bien sûr). Si je ne commente pas, il me donne le NullExceptionError dans cette ligne. – Ellome

0
Imports System.Drawing 
Imports System.Windows.Forms 

Public Class Form1 
    Inherits Form 
    Private tabControl1 As TabControl 
    Private tabPage1 As TabPage 
    Private tabPage2 As TabPage 

    Private Sub MyTabs() 
     Me.tabControl1 = New TabControl() 
     Me.tabPage1 = New TabPage() 
     Me.tabPage2 = New TabPage() 

     Me.tabControl1.Controls.AddRange(New Control() {Me.tabPage1, Me.tabPage2}) 
     Me.tabControl1.Padding = New Point(15, 10) 
     Me.tabControl1.Location = New Point(35, 25) 
     Me.tabControl1.Size = New Size(220, 220) 

     ' Selects tabPage2 using SelectedTab. 
     Me.tabControl1.SelectedTab = tabPage2 

     Me.tabPage1.Text = "tabPage1" 
     Me.tabPage2.Text = "tabPage2" 

     Me.Size = New Size(300, 300) 
     Me.Controls.AddRange(New Control() {Me.tabControl1}) 
    End Sub 

    Public Sub New() 
     MyTabs() 
    End Sub 

    Shared Sub Main() 
     Application.Run(New Form1()) 
    End Sub 
End Class 
Questions connexes