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 :

Liste déroulante dans l'entete d'une colonne [datagrid]


Sujet :

VB.NET

  1. #1
    Membre du Club
    Inscrit en
    Juillet 2009
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 116
    Points : 53
    Points
    53
    Par défaut Liste déroulante dans l'entete d'une colonne [datagrid]
    Bonjour,

    Comme le titre indique, comment ajouter une liste deroulante [combobox] à l'entete de chaque colonne de mon datagrid?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    combobox1  combobox2  combobox3
    1                nom1          prenom1
    2                nom2          prenom2
    3                nom3          prenom3
    Merci

  2. #2
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 177
    Points : 25 125
    Points
    25 125
    Par défaut
    si c'est en windows forms, c'est vraiment pas évident (pas réellement prévu pour, donc faut bricoler par héritage)

  3. #3
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 753
    Points
    39 753
    Par défaut
    C'est possible, on a fait un truc similaire dans l'appli développée par ma boite (avec un DateTimePicker, mais c'est le même principe). Mais c'est vraiment du bricolage : le contrôle est juste posé par dessus le DataGridView, au niveau de l'en-tête de colonne.
    Pour qu'il soit toujours bien positionné malgré les redimensionnements de colonne, on le déplace à chaque fois que l'en-tête de la colonne est redessiné (dans l'évènement CellPainting) :

    Code C# : 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
            private void dataGridViewArticle_CellPainting(object sender, DataGridViewCellPaintingEventArgs e)
            {
                if (e.RowIndex < 0) // ligne d'en-tête
                {
                    if (dataGridViewArticle.Columns[e.ColumnIndex].Name == "QTE_LIV1")
                    {
                        this.dateTimePickerLiv1.Bounds = new Rectangle(e.CellBounds.X, e.CellBounds.Y + 18, e.CellBounds.Width - 4, e.CellBounds.Height - 18);
                    }
                    else if (dataGridViewArticle.Columns[e.ColumnIndex].Name == "QTE_LIV2")
                    {
                        this.dateTimePickerLiv2.Bounds = new Rectangle(e.CellBounds.X, e.CellBounds.Y + 18, e.CellBounds.Width - 4, e.CellBounds.Height - 18);
                    }
                    else if (dataGridViewArticle.Columns[e.ColumnIndex].Name == "QTE_LIV3")
                    {
                        this.dateTimePickerLiv3.Bounds = new Rectangle(e.CellBounds.X, e.CellBounds.Y + 18, e.CellBounds.Width - 4, e.CellBounds.Height - 18);
                    }
                }
            }

  4. #4
    Membre du Club
    Inscrit en
    Juillet 2009
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 116
    Points : 53
    Points
    53
    Par défaut
    Je vois que vous utilisez un code c#, est ce que c'est le meme principe en vb.net? Aussi, vous utilisez un datagridview, et moi je travaille sur visual studio .NET 2003 , donc j'ai juste un datagrid.
    Est ce que c'est toujours possible d'implementer une combobox malgré tt ?

    Merci pour votre AiDe

    Crdlt

  5. #5
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 753
    Points
    39 753
    Par défaut
    Ah pardon, j'avais pas vu que c'était pour VB.NET... mais oui, c'est exactement le même principe, il suffit de transcrire le code.

    Par contre c'est pour un DataGridView, pas un DataGrid... il est peut-être possible de faire quelque chose de similaire avec le DataGrid, mais je ne sais pas trop comment on utilise ce contrôle

  6. #6
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 177
    Points : 25 125
    Points
    25 125
    Par défaut
    le c# peut etre converti en vb.net, c'est le meme framework (demander à google pour ca)

    pour le datagrid ca doit etre un peu différent, il est moins bien que le dgv, donc peut etre encore moins de choses modifiables


    @tomlev : je serais plus parti sur un inherits de headercell pour travailler dans le onpaint, m'enfin ca revient quasi au meme = il faut du courage

  7. #7
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 753
    Points
    39 753
    Par défaut
    Citation Envoyé par sperot51 Voir le message
    @tomlev : je serais plus parti sur un inherits de headercell pour travailler dans le onpaint
    Dans le principe, je suis d'accord...
    Je sais pas si tu as déjà essayé d'hériter de DataGridView pour le customiser, mais en général c'est assez coton
    Là on avait besoin d'un truc vite fait pour un besoin spécifique, donc on s'est pas pris la tête...

  8. #8
    Membre du Club
    Inscrit en
    Juillet 2009
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 116
    Points : 53
    Points
    53
    Par défaut
    BONJOUR,

    Voila , j'ai trouvé une solution .. c'est de positionner le combobox directement sur mon datagrid , l'affecter un width comme celle de colonne bon ça marche !
    J'ai un autre problem, c'est lorsque je met un dateTimePicker dans mon datagrid, par defaut au debut la cellule est vide mais une fois je sélectionne une date, je peux pas vider cette cellule aprés, j'ai essayé grid(i,j)="" mais en vain !!!
    Pourriez vous me dire si c'est possible d'abords, puisqu'un datetimepicker contient toujours une date?

    Merci pour votre aide

  9. #9
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 753
    Points
    39 753
    Par défaut
    Citation Envoyé par sisi87 Voir le message
    j'ai essayé grid(i,j)="" mais en vain !!!
    Essaie avec Nothing ou DBNull.Value à la place de ""

  10. #10
    Membre du Club
    Inscrit en
    Juillet 2009
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 116
    Points : 53
    Points
    53
    Par défaut

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

Discussions similaires

  1. [2.x] [Silex] Liste déroulante dans form à partir d'une classe
    Par clem_alain dans le forum Symfony
    Réponses: 4
    Dernier message: 13/01/2016, 15h14
  2. enregistrer plusieurs colonnes d'une liste déroulante dans une table
    Par juliejuliejuliejulie dans le forum VBA Access
    Réponses: 5
    Dernier message: 19/06/2012, 18h18
  3. Liste déroulante dans le cadre d'une macro
    Par lidou76 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 15/07/2009, 14h00
  4. Réponses: 10
    Dernier message: 27/03/2007, 12h21
  5. [EXCEL] Insertion liste déroulante dans une cellule
    Par the java lover dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 02/11/2005, 18h30

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