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 :

Datagridview avec une colonne DataGridViewComboBoxColumn


Sujet :

VB.NET

  1. #1
    Membre très actif
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2012
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2012
    Messages : 175
    Par défaut Datagridview avec une colonne DataGridViewComboBoxColumn
    Bonjour

    Aprés plusieurs jours de reccherche dans sur le net, j'ai pas pu trouver l'erreur dans mon code, alors je m'adresse a vous si vous pouvez m'aider

    mon sujet est:

    j'ai un datagridview "DataGListe" lié à une datatable

    j'ai ajouté au DataGListe une colonne de type DataGridViewComboBoxColumn


    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
    Sub AjouterColonne()
     
                        Dim ComboColonne As New DataGridViewComboBoxColumn
                        With Me.DataGListe
                            .Columns.Insert(4, ComboColonne)
                            With .Columns(4)
                                .Width = 200
                                .DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleLeft
                                .Name = "Reglement"
                                .ReadOnly = False
                            End With
                       End With
     
                        Dim cb As New DataGridViewComboBoxCell
                        cb.Items.Add("1")
                        cb.Items.Add("2")
                        Me.DataGListe.Rows.Item(0).Cells("Reglement") = New DataGridViewComboBoxCell()
                        Me.DataGListe.Rows.Item(0).Cells("Reglement") = cb
                        Me.DataGListe.Rows.Item(0).Cells("Reglement").Value = cb.Items(0).ToString
                        Me.DataGListe.Columns(0).ReadOnly = True
     
    End Sub
     
    Private Sub FrmListe_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            AjouterColonne()
    End Sub
    Puis dans l'evenement CellClick de mon datagridview j'ai mis

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub DataGListe_CellClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGListe.CellClick
     
                    If Me.DataGListe.Columns(e.ColumnIndex).Name = "Reglement" Then
                        Me.DataGListe.BeginEdit(True)
                        If DataGListe.Rows(e.RowIndex).Cells("Reglement").Selected = True Then
                            DirectCast(Me.DataGListe.EditingControl, DataGridViewComboBoxEditingControl).DroppedDown = True
                        End If
                    EndIf
     
    End Sub
    mais j'ai toujours l'erreur
    La référence d'objet n'est pas définie à une instance d'un objet.
    merci

  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
    Sur quelle ligne s'arrête il ?

    Ou plutôt, au pas-à-pas, quand est ce que l'exception est levé ?

    Ca te permettrait de trouver quelle variable ou objet contient Nothing et donc de résoudre ton problème.

  3. #3
    Membre très actif
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2012
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2012
    Messages : 175
    Par défaut
    Il s'arrete sur la ligne


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DirectCast(Me.DataGListe.EditingControl, DataGridViewComboBoxEditingControl).DroppedDown = True
    j'ai refait cette ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
                      Cl = New DataGridViewComboBoxEditingControl                    
                        Cl = CType(Me.DataGListe.EditingControl, DataGridViewComboBoxEditingControl)
                        Cl.DroppedDown = True
    et l'erreur se déclanche au


  4. #4
    Membre éprouvé
    Homme Profil pro
    Architecte technique
    Inscrit en
    Avril 2003
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Avril 2003
    Messages : 79
    Par défaut
    S'il s'arrête sur la ligne
    Cela semble indiquer que Cl est à Nothing.

    Peux tu nous le confimer ?

  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
    C'est ce qu'il semble en effet,

    du coup, c'est ça qui retourne nul :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CType(Me.DataGListe.EditingControl, DataGridViewComboBoxEditingControl)
    J'ai regardé EditingControl, il retourne le controle du currentCell si celui-ci est en mode edit.

    Donc deux choses :

    - soit le currentcell n'est pas sélectionné. J'ai vu que tu as fais .Selected = True, pas sur que ça marche... presque sur que ça ne marche pas d'ailleurs. (Selection ne veut pas dire Current) Dans la MSDN pour sélectionner la current cell, ils suggèrent

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.dataGridView1.CurrentCell = Me.dataGridView1(1, 0)
    (et non pas en utilisant .Selected)

    - Et/Ou la cellule n'est pas en mode edit.

  6. #6
    Membre très actif
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2012
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2012
    Messages : 175
    Par défaut
    Après le pas à pas je confirme que

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CType(Me.DataGListe.EditingControl, DataGridViewComboBoxEditingControl)
    est à Nothing

    Et/Ou la cellule n'est pas en mode edit.
    la colonne est en mode ReadOnly.
    Je ne sais pas si la cellule peut être en mode Edit si elle est en ReadOnly

  7. #7
    Membre très actif
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2012
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2012
    Messages : 175
    Par défaut
    En fin ca marche

    j'ai mis ma colonne "DataGridViewComboBoxColumn" en mode ReadOnly=False
    et j'ai laissé les autres colonnes en ReadOnly

    et j'ai se que je voulais

    Merci pour votres aides

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 28/06/2008, 19h44
  2. Jvcl(grid avec une colonne checkbox)
    Par Klemsy78 dans le forum Delphi
    Réponses: 2
    Dernier message: 02/11/2006, 21h15
  3. Réponses: 3
    Dernier message: 22/10/2006, 23h15
  4. Réponses: 3
    Dernier message: 26/07/2006, 10h18
  5. Réponses: 4
    Dernier message: 09/02/2005, 10h44

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