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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    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
    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 Expert
    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
    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 !!!

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

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    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 éclairé
    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
    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 : 43
    Localisation : France

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

  6. #6
    Membre éclairé
    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
    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 éclairé
    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
    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 éclairé
    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
    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 !!

+ 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