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 :

Passer une valeur dans la cellule d'un DataGridView


Sujet :

VB.NET

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2014
    Messages : 65
    Points : 33
    Points
    33
    Par défaut Passer une valeur dans la cellule d'un DataGridView
    Bonjour,

    J'ai un DataGridView bindé avec une table de ma base de données SQL Server.
    Cette table contient l'ID d'un produit,le nom de ce produit et le chemin d'accès vers un PDF relatif à ce produit.

    Mon DGV affiche bien les colonnes différentes et j'ai ajouté une colonne de boutons.

    Mais j'aimerais faire en sorte que si l'utilisateur clique sur un des boutons de la colonne, il soit invité à selectionner un fichier et que le chemin d'accès soit directement affiché dans la colonne dédiée, et ceci pour la ligne contenant le bouton cliqué (donc dans une seule cellule)
    De cette manière, je n'aurais qu'à sauvegarder les modifications effectuées dans le DGV afin que le chemin d'accès soit enregistré dans la base (attribuant ainsi un fichier à chaque produit)

    J'ai fait des tests en créant un bouton permettant de choisir un fichier et d'afficher son chemin dans une TextBox, voici son code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click     
         Dim selectedFile As String = String.Empty     
         Dim OpenFileDialog1 As OpenFileDialog = New OpenFileDialog     
         OpenFileDialog1.ShowDialog()         
         selectedFile = OpenFileDialog1.FileName         
         If (selectedFile IsNot Nothing) Then        
              TextBox.Text = selectedFile         
         End If
    End Sub
    Malgré de nombreuses recherches, impossible de faire la même chose avec une cellule précise du DGV au lieu de la TextBox et avec un bouton de la colonne, et le problème devient urgent à cause de la deadline qui approche...

    J'ai cependant entendu parler sur plusieurs forum de ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.DataGridView1.CurrentRow.Cells(0).Value
    Est-ce ce que je dois utiliser ?

    Merci d'avance !

    Cordialement

  2. #2
    Membre actif
    Inscrit en
    Juillet 2013
    Messages
    777
    Détails du profil
    Informations forums :
    Inscription : Juillet 2013
    Messages : 777
    Points : 275
    Points
    275
    Par défaut
    Si tu veux afficher une valeur dans une cellule précise, c'est effectivement un truc du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.DG_HistoriqueAchats.Rows(x).Cells(y).Value
    Son corollaire est

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.DG_HistoriqueAchats.CurrentRow.Cells(y).Value
    Attention cependant à t'assurer que, en cliquant sur ton bouton, le currentrow est bien la ligne où se trouve le bouton.
    J'ai souvenir d'avoir eu pas mal de soucis de ce côté là.
    Il faut parfois faire un Select de la ligne en question auparavant ce qui revient à la première syntaxe indiquée.

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2014
    Messages : 65
    Points : 33
    Points
    33
    Par défaut
    Bonjour,

    Merci beaucoup pour ta réponse, j'étais donc sur la bonne voie.

    Cependant, comment utiliser le "CurrentRow" dans le code du bouton que j'ai donné ? Et dans quel événement du DataGridView mettre ce code ?

    Je sais que ces questions peuvent paraître stupides mais je débute dans ce domaine.

    (je suis également ouvert à d'autres réponses, si certaines personnes passent par là )

    Encore merci.

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2014
    Messages : 65
    Points : 33
    Points
    33
    Par défaut
    Bonjour,

    Je me permet de remonter le topic car j'ai vraiment besoin de régler ce problème de toute urgence.

    Je ne vois pas comment combiner le code de mon bouton et le CurrentRow et où mettre ce code pour obtenir un chemin d'accès et le placer dans la colonne dédiée

    Merci d'avance.


    EDIT:

    J'ai finalement réussi à régler mon problème, il suffisait de combiner les deux codes et de le mettre dans le bon évenement. Je me suis débrouillé pour mettre la colonne où devait apparaître la valeur en "colonne bouton" et j'ai mis ce code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Private Sub ProduitDataGridView_CellContentClick(sender As Object, e As DataGridViewCellEventArgs) Handles ProduitDataGridView.CellContentClick
            Dim selectedFile As String = String.Empty
            Dim OpenFileDialog1 As OpenFileDialog = New OpenFileDialog
     
            OpenFileDialog1.ShowDialog()
            selectedFile = OpenFileDialog1.FileName
     
            If (selectedFile IsNot Nothing) Then
                ProduitDataGridView.CurrentRow.Cells(3).Value = selectedFile
            End If
        End Sub
    Un grand merci pour ton aide noftal, je vais finalement venir à bout de ce projet

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

Discussions similaires

  1. [XL-2003] Probleme pour mettre une valeur dans la cellule voulue
    Par tools dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 07/06/2011, 15h46
  2. Copier une valeur dans la cellule au-dessus si vide
    Par ThSPB dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 24/02/2011, 14h52
  3. [MVVM] passer une valeur dans une Command
    Par Monkey56 dans le forum Windows Presentation Foundation
    Réponses: 2
    Dernier message: 22/09/2010, 15h14
  4. Réponses: 2
    Dernier message: 05/02/2010, 16h13
  5. [JDBC]Passer une valeur dans une requete KO
    Par joseph_p dans le forum JDBC
    Réponses: 6
    Dernier message: 16/02/2008, 17h00

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