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

VB.NET Discussion :

Problème d'affichage dans un tabcontrol.


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 42
    Par défaut Problème d'affichage dans un tabcontrol.
    Bonjour,
    J'ai un problème d'affichage sur un tabcontrol.
    Sur un tabcontrol.Tabpage6 j'ai un datagridview que je rempli par programmation dans le load de ma form.
    si je click sur l'onglet tabpage6 qui contient ma datagridview la grille est vide.

    Après vérification de debugg le datagridview est bien rempli !

    Y a t'il quelque chose de plus à faire pour forcer l'affichage dans le tabcontrol.tabpage ?


    Code présent au load de ma form

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
     
            Dim Type As String = ""
            Dim Champs() As String
            Dim OrdreSelection As Integer = 0
     
            '***** suppression de la close FROM et du reste
            Champs = Split(Exp_liste_champs_Stk, ",")
     
     
            '***** Ouverture de la base SQL sélectionnée.
            OpenSql(Err, NomServeurSql, Base_EBP)
     
            requete = "SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE Table_Name = 'Item'"
     
            Dim cmdLireItem As New SqlCommand(requete, Connect)
            Dim rstLireItem As SqlDataReader
     
            DataGridView1.DataMember = Nothing
            DataGridView1.Rows.Clear()
     
            ' ***** Lecture des enregitrements
            rstLireItem = cmdLireItem.ExecuteReader()
     
            cmdLireItem.Dispose()
     
            While rstLireItem.Read()
     
                '*****
                Zone = rstLireItem.Item("COLUMN_NAME") & ""
                Type = rstLireItem.Item("data_type") & ""
                OrdreSelection = 0
                For i = 0 To UBound(Champs)
                    If Champs(i) = Zone Then
                        OrdreSelection = i + 1
                    End If
                Next
     
                DataGridView1.Rows.Add(OrdreSelection, Zone, Type)
     
            End While
     
            rstLireItem.Close()
            rstLireItem = Nothing
     
            DataGridView1.Refresh()
     
            '*****
            CloseSql(FLGErreur)
    Par avance merci pour vos réponses

  2. #2
    Membre Expert Avatar de mactwist69
    Homme Profil pro
    Développement VB.NET
    Inscrit en
    Janvier 2007
    Messages
    1 707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement VB.NET
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 707
    Par défaut
    Bonjour,

    Bon, c'est une méthode un peu à l'ancienne : Pas de requête paramétrés, utilisation d'un reader... chargement d'un DGV à la main...
    C'est des choix technologiques un peu vieillot.

    Normalement, on utilise les requêtes paramétrées, un dataset, et on Databind le DGV sur une datatable du dataset.


    Mais sinon, pour debugger ton problème...

    As-tu essayé de mettre un point d'arrêt et de passer au pas-à-pas... Pour constater :

    - Que la requête te ramène bien des lignes ?
    - Que les lignes du DGV sont bien créées ?

  3. #3
    Membre Expert Avatar de mactwist69
    Homme Profil pro
    Développement VB.NET
    Inscrit en
    Janvier 2007
    Messages
    1 707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement VB.NET
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 707
    Par défaut
    Arf, tu as déjà vérifier...

    es tu sur de n'avoir qu'un DGV ?

    Parce qu'il n'y a rien a faire de particulier sur le tabpage....

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 42
    Par défaut
    Citation Envoyé par mactwist69 Voir le message
    Arf, tu as déjà vérifier...

    es tu sur de n'avoir qu'un DGV ?

    Parce qu'il n'y a rien a faire de particulier sur le tabpage....


    Oui mon DGV est bien rempli !

    j'ai rajouté les lignes suivantes au load

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    TabControl1.SelectedTab = TabControl1.TabPages.Item(5)
     
    TabControl1.SelectedTab = TabControl1.TabPages.Item(0)
    et le DGV s'affiche bien avec les données !!

    Je ne comprends pas.
    si vous avez une idée.

  5. #5
    Membre Expert Avatar de mactwist69
    Homme Profil pro
    Développement VB.NET
    Inscrit en
    Janvier 2007
    Messages
    1 707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement VB.NET
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 707
    Par défaut
    En fait il semble que ce problème est bien connu du net.... Lorsqu'on rempli le DGV à la main
    Problème de refreshing...

    les gens font parfois comme toi (selectedtab = )

    A la limite, dans le load... tu fais un me.tabcontrol.suspendLayout, tu charges les données, tu select ton tabpage 5, tu reviens au 0,
    et à la fin un tabControl.resumeLayout.

    Ca évitera peut être un visuel pas sympa de changement d'onglets.

    Je regarde si je vois autre chose...

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 42
    Par défaut
    Citation Envoyé par mactwist69 Voir le message
    En fait il semble que ce problème est bien connu du net.... Lorsqu'on rempli le DGV à la main
    Problème de refreshing...

    les gens font parfois comme toi (selectedtab = )

    A la limite, dans le load... tu fais un me.tabcontrol.suspendLayout, tu charges les données, tu select ton tabpage 5, tu reviens au 0,
    et à la fin un tabControl.resumeLayout.

    Ca évitera peut être un visuel pas sympa de changement d'onglets.

    Je regarde si je vois autre chose...
    Merci pour vos réponses.
    Je vais utiliser cette astuce.

Discussions similaires

  1. Réponses: 3
    Dernier message: 29/04/2006, 22h06
  2. Problème d'affichage dans un tableau
    Par claralavraie dans le forum ASP
    Réponses: 13
    Dernier message: 21/12/2005, 15h45
  3. [JSTL] Problème d'affichage dans un <c:forEach>
    Par zwck dans le forum Taglibs
    Réponses: 6
    Dernier message: 05/11/2005, 21h35
  4. Problème d'affichage dans un composant TScrollBox
    Par erossi dans le forum Composants VCL
    Réponses: 3
    Dernier message: 14/09/2005, 11h29
  5. [débutant]problèmes d'affichage dans un tableau
    Par Hastur dans le forum Balisage (X)HTML et validation W3C
    Réponses: 12
    Dernier message: 16/08/2005, 12h00

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