IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Presentation Foundation Discussion :

Tabcontrol : changer d'onglet par code


Sujet :

Windows Presentation Foundation

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Août 2006
    Messages
    582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 582
    Points : 265
    Points
    265
    Par défaut Tabcontrol : changer d'onglet par code
    Bonjour,
    j'ai un tabcontrol avec 2 onglets nommés TabItemCoordonnees et TabItemConfig.

    Sur la première page (TabItemCoordonnees), j'ai un bouton btnSuivant. Je souhaite, lors du clic sur le bouton, afficher TabItemConfig. Voici le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Private Sub btnSuivant_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs)
     
            TabControl1.SelectedItem = TabControl1.Items.IndexOf(TabItemConfig)
        End Sub
    Et ça marche pas. Pourquoi ?

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 562
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 562
    Points : 1 313
    Points
    1 313
    Par défaut
    bon en c# ca ca marche
    this.tabControl1.SelectedItem = this.tabControl1.Items[1];
    n'oubli pas que les tab commence a 0 ca vient p'tet de la !!!
    IKEAS : Finalement je crois que c'est dans ses faiblesses que l'on y trouve a la fois de la force et a la fois de la richesse...
    ----------------------------------------------------
    Si vous avez du taf en wpf & design d'application sympa, contactez moi !!!!
    http://ultimatecorp.eu/wpf/

  3. #3
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    Essaye ca comme code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub btnSuivant_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs)
     
            TabControl1.SelectedItem = TabControl1.Items(TabItemConfig)
        End Sub

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Août 2006
    Messages
    582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 582
    Points : 265
    Points
    265
    Par défaut
    Si je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    TabControl1.SelectedItem = TabControl1.Items(TabItemConfig)
    j'ai une erreur sur TabItemConfig : "Value of type System.Windows.Controls.TabItem cannot be converted to Integer" !
    C'est tout de même dingue que ça fonctionne en C# et pas en VB !!

    D'autres pistes ?

  5. #5
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    Là, c'est plus un pb de syntaxe au niveau du langage VB que de WPF je pense...

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    Août 2006
    Messages
    582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 582
    Points : 265
    Points
    265
    Par défaut Bizarre, bizarre...
    Je viens de faire quelques tests.
    Si je mets ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    TabControl1.SelectedItem = TabControl1.Items(1)
    dans la procédure d'évènement Click du bouton, ça ne marche pas.

    Si je mets le même code dans l'évènement Loaded de la fenêtre, là ça marche : au lancement de l'application, l'onglet sélectionné est bien le 2nd (TabItemConfig). Si, toujours dans l'évènement Loaded de la fenêtre, je mets :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    TabControl1.SelectedItem = TabControl1.Items.IndexOf(TabItemConfig)
    et ben... ça marche plus ! Incompréhensible...

  7. #7
    Membre actif
    Profil pro
    Inscrit en
    Août 2006
    Messages
    582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 582
    Points : 265
    Points
    265
    Par défaut Trouvé !
    Le problème venait de la déclaration de la procédure d'évènement click de btnSuivant qui était libellée comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Private Sub btnSuivant_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs)
    Il manquait tout simplement "handles btnSuivant.Click" à la fin !

    Tout marche impec !
    Par contre si je remplace le Items(1) par Items.IndexOf(TabItemConfig), ça marche plus... mais bon, problème résolu.

    Merci.

  8. #8
    Membre actif
    Profil pro
    Inscrit en
    Août 2006
    Messages
    582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 582
    Points : 265
    Points
    265
    Par défaut Trouvé et... compris !!
    J'ai compris pourquoi cela ne marchait pas avec Items.IndexOf(TabItemConfig).
    La propriété TabControl1.SelectedItem attend un objet de type Item.
    Or TabControl1.Items.IndexOf(TabItemConfig) est un Integer ! Voilà pourquoi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    TabControl1.SelectedItem = TabControl1.Items.IndexOf(TabItemConfig)
    ne marche pas ! (cependant, pourquoi aucune erreur n'est signalée ?!). En fait, il faut écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    TabControl1.SelectedItem = TabControl1.Items(TabControl1.Items.IndexOf(TabItemConfig))
    CQFD !!

  9. #9
    Membre confirmé Avatar de arnofly
    Homme Profil pro
    Développeur Web / Webdesigner
    Inscrit en
    Mai 2007
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web / Webdesigner
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 411
    Points : 465
    Points
    465
    Par défaut
    Slt,

    Merci pour les infos, cela m'a aidé à trouver.

    Par contre le dernier code ne fonctione pas non plus, enfin chez moi en tous cas.

    CODE QUI MARCHE :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            TabControl1.SelectedTab = TabControl1.TabPages.Item(1)
            'Item(1) est égale au deuxième onglet
    End Sub
    Tout simplement

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [xCode 4.5.2] Changer de vue par code
    Par Angel31 dans le forum XCode
    Réponses: 0
    Dernier message: 04/01/2013, 23h41
  2. Aide Gestion d'onglet par code
    Par juan67 dans le forum IHM
    Réponses: 6
    Dernier message: 10/09/2012, 15h10
  3. [NotifyIcon]Comment changer l'icone par code ?
    Par exclusif dans le forum Windows Forms
    Réponses: 2
    Dernier message: 20/01/2007, 18h25
  4. Changer la page de code par défaut de l'invite de commande
    Par guipom dans le forum Autres Logiciels
    Réponses: 2
    Dernier message: 06/04/2006, 11h06
  5. [QuickReport] Changer la direction par le code
    Par cadetill dans le forum Composants VCL
    Réponses: 2
    Dernier message: 11/08/2005, 14h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo