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 :

ComboBox sur un Header DataGridView


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Trader / Formateur / Développeur Options CBOE
    Inscrit en
    Septembre 2018
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Afrique Du Sud

    Informations professionnelles :
    Activité : Trader / Formateur / Développeur Options CBOE
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2018
    Messages : 86
    Par défaut ComboBox sur un Header DataGridView
    Bonjour
    Je cherche à créer un ComboBox sur un Column Header d'un DataGridView (DGV)
    Je suis arrivé à changer les cellules du DGV en ComboBox mais pas le Header.
    Il me semble que tout est possible dans VS, mais je ne vois pas comment et j'aimerais éviter devoir créer une nouvelle classe héritée de DGV.
    Merci par avance
    Bruno

  2. #2
    Membre confirmé
    Homme Profil pro
    Trader / Formateur / Développeur Options CBOE
    Inscrit en
    Septembre 2018
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Afrique Du Sud

    Informations professionnelles :
    Activité : Trader / Formateur / Développeur Options CBOE
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2018
    Messages : 86
    Par défaut
    N'ayant pas vu de commentaire, je ne sais pas si ma question est insoluble ou au contraire trop triviale.
    Une autre variante intéressante serait un ListBox ou ListView sur clique-droit du Header d'un DataGridView, bref pouvoir sélectionner quel champ lister en dessous.

  3. #3
    Membre Expert Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Par défaut
    Bonjour Bruno,

    Ta question n'est certainement pas triviale !
    J'ai cherché (un peu) et je n'ai rien trouvé.

    Par contre, je peux faire une colonne de cellules ComboBox dans le DataGridView mais ça, ce n'est pas ta question

    Bonne journée,

  4. #4
    Membre confirmé
    Homme Profil pro
    Trader / Formateur / Développeur Options CBOE
    Inscrit en
    Septembre 2018
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Afrique Du Sud

    Informations professionnelles :
    Activité : Trader / Formateur / Développeur Options CBOE
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2018
    Messages : 86
    Par défaut
    Merci Phil
    J'ai bien trouvé ceci sur GitHub : https://gist.github.com/sdanna/2597102
    Mais ça me dépasse un peu beaucoup...

  5. #5
    Membre Expert Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Par défaut
    Je n'ai pratiquement jamais utilisé de librairie externes à VisualStudio.

    Le lien que tu transmets nous conduit au code (en C#) de 2 classes qui devraient être utilisables pour placer des Headers de type ComboNumericHeaderCell et SpecialColumnHeader. Je pense qu'il faudrait compiler ces classes en DLL et les référencer dans ton projet VB, mais cela me paraît difficile sans souscrire davantage à github.

    Sûrement qu'il existe des participants à ce forum qui travaillent déjà avec github ... Eux pourraient clarifier l'usage possible de ces classes.

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

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 197
    Par défaut
    le plus simple c'est de t'abonner à clic /clic droit sur l'entete de la colonne et de popup une fenetre
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  7. #7
    Membre confirmé
    Homme Profil pro
    Trader / Formateur / Développeur Options CBOE
    Inscrit en
    Septembre 2018
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Afrique Du Sud

    Informations professionnelles :
    Activité : Trader / Formateur / Développeur Options CBOE
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2018
    Messages : 86
    Par défaut
    Merci Pol ! Excellente idée ! Simple et efficace !

  8. #8
    Membre confirmé
    Homme Profil pro
    Trader / Formateur / Développeur Options CBOE
    Inscrit en
    Septembre 2018
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Afrique Du Sud

    Informations professionnelles :
    Activité : Trader / Formateur / Développeur Options CBOE
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2018
    Messages : 86
    Par défaut
    Voici un mini-projet qui implémente ce que je voulais obtenir avec l'idée simple et néanmoins géniale de Pol.
    En espérant que cela pourra être utile à certains VBistes balbutiant comme moi
    Encore merci.
    Fichiers attachés Fichiers attachés

  9. #9
    Membre Expert Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Par défaut
    C'est simple en effet. Génial.
    Merci pour le feedback.

  10. #10
    Membre Expert Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Par défaut
    Juste pour m'amuser un peu ...

    En ajoutant quelques lignes de codes au chargement de ta popup, tu obtiens un effet plus porche de ce qu'il aurait été avec une ComboBox.

    Bonne journée

    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
        Private Sub Greeks_Load(sender As Object, e As EventArgs) Handles MyBase.Load
     
            With LstGreeks.Items
                .Clear()
                .Add("DELTA")
                .Add("GAMMA")
                .Add("THETA")
                .Add("VEGA")
                .Add("VOMMA")
            End With
     
            Me.FormBorderStyle = FormBorderStyle.None
            Me.Height = (LstGreeks.Items.Count + 1) * LstGreeks.Font.Height  ' ScrollBar directement visible si pas de '+1'
            Me.Width = Form1.DGVtest.Columns(ColumnNumber).Width
            LstGreeks.Dock = DockStyle.Fill
     
        End Sub
    Nom : EffetCombo.jpg
Affichages : 213
Taille : 15,0 Ko

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

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 197
    Par défaut
    idéalement il faut aussi gérer l'event Deactivated pour faire me.dispose
    comme ca quand l'utilisateur clic ailleurs sur la fenetre cette popup se ferme (comme un combobox)
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  12. #12
    Membre confirmé
    Homme Profil pro
    Trader / Formateur / Développeur Options CBOE
    Inscrit en
    Septembre 2018
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Afrique Du Sud

    Informations professionnelles :
    Activité : Trader / Formateur / Développeur Options CBOE
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2018
    Messages : 86
    Par défaut
    Merci
    Je pense que l'event Deactivated n'est pas vraiment nécessaire dans mon exemple. Le Form "ComboBox" est statique et reste simplement en mémoire.
    En revanche, Phil, j'ai aussi pris un raccourci peu élégant dans son positionnement dans DGVtest_ColumnHeaderMouseClick:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
                    Dim Y As Integer = Location.Y + 50  ' arbitrary Y offset
                    Dim X As Integer = Location.X + 50  ' arbitrary X offset
    On doit pouvoir faire mieux, non ?

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 16/03/2009, 17h22
  2. Lier le comportement de 2 combobox sur une ligne de datagridview
    Par Delphi-ne dans le forum Windows Forms
    Réponses: 0
    Dernier message: 16/03/2009, 16h03
  3. DataGridView avec comboBox sur les lignes
    Par gentelmand dans le forum Windows Forms
    Réponses: 1
    Dernier message: 09/03/2009, 13h46
  4. Réponses: 4
    Dernier message: 13/02/2006, 11h11
  5. [VBA]Execution d'une procédure avec un ComboBox sur Excel
    Par delamarque dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 31/01/2006, 09h27

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