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

Windows Forms Discussion :

clic sur une ligne d'un datagridview pour envoyer les données sur un autre formulaire


Sujet :

Windows Forms

  1. #1
    Membre éprouvé
    Avatar de Elros
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Avril 2009
    Messages
    403
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2009
    Messages : 403
    Points : 912
    Points
    912
    Billets dans le blog
    9
    Par défaut clic sur une ligne d'un datagridview pour envoyer les données sur un autre formulaire
    Bonsoir,

    Étant débutant en vb6, je viens vous demander de l'aide après avoir rechercher (trouvé des choses mais pas assez expliqué pour mon niveau) dans les cours, tutoriels, faqs et msdn.

    J'ai un datagridview que je remplis sans difficultés avec ceci (les champs NumCli, NomCli, etc.. de la table Client)
    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
     
    Private Sub AcceuilClient_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
     
            ' Déclaration Objet Commande 
            Dim oCmd As OleDbCommand
            ' Déclaration Objet DataAdapter
            Dim oDA As OleDbDataAdapter
            ' Déclaration Objet DataSet
            Dim oDS As New DataSet
            ' Déclaration Objet DataTable
            Dim oDT As New DataTable
            ' Déclaration d'un  OleDbCommandBuilder
            Dim oCB As OleDbCommandBuilder
     
            'requete sql pour datagrid (20 derniers clients)
            cmdSelect = "SELECT TOP 20 NumCli as Numéro, NomCli as Nom, PrenomCli as Prénom, TelCli as Tel FROM Client ORDER BY NumCli DESC"
     
            'connection à la bdd
            oConnexion.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Me.CheminFichier
            oConnexion.Open()
     
            'Instancier un objet Commande
            oCmd = New OleDbCommand(cmdRequete)
            'Instancier un objet Adapter
            oDA = New OleDbDataAdapter(oCmd)
            'initialiser l'objet Command
            oCmd.Connection() = Me.oConnexion
            'initialiser l'objet OleCBComandBuilder (sinon pas d'update)
            oCB = New OleDbCommandBuilder(oDA)
            'Avec l'aide de la propriété Fill du DataAdapter charger le DataSet
            oDA.Fill(oDS, NomTable)
            'Créer une datatable à partir du dataset
            oDT = oDS.Tables(NomTable)
            'Mettre dans le DataGrid une table DataTable
            DataGridViewName.DataSource = oDT
            'Récupère le nombre de ligne
            NbLigneDataGrid = DataGridViewName.RowCount
     
            ' ferme la connexion
            Me.oConnexion.Close()
     
    End Sub
    le résultat en image

    Et voilà ma question :
    Comment faire en sorte que les lignes d'un DataGridView soient des liens, et que lorsque l'on clic sur un lien celui ci nous envoi sur une autre formulaire avec toutes les données de ligne cliquée.
    Pour essayer d'être plus compréhensible, cela représente la méthode Post ou Get en php.

    J'espère avoir était clair et merci d'avance pour votre aide ( et votre temps).
    Elros.
    Un message vous a aidé ? Votez en cliquant sur Pensez au bouton

    Venez faire un petit tour sur mon blog : Elros - Bienvenue dans le monde de la Business Intelligence

  2. #2
    Membre habitué
    Profil pro
    Développeur informatique
    Inscrit en
    Mars 2008
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2008
    Messages : 155
    Points : 178
    Points
    178
    Par défaut
    Voilà un exemple dans le cas MSFlexGrid.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub grdLevel1_Click()
    Dim CurrentClickedRow As Long
        With grdLevel1
            CurrentClickedRow = .MouseRow
            If CurrentClickedRow = 0 Then Exit Sub
            If CurrentClickedRow = .Rows - 1 Then Exit Sub 'ligne nécessaire si comme moi tu as toujours une ligne blanche à la fin, sinon enlève ce code
     
            ' Pour retrouver les varibales nécessaires à générer un formulaire ou autre chose. L'exemple ici te donne la valuer de la cellule de la première colonne et de la ligne cliquée
            var1 = .textMatrix(CurrentClickedRow ,0)
    end sub
    [EDIT] Hélas, la méthode .textmatrix n'existe pas pour Datagrid

  3. #3
    Membre éprouvé
    Avatar de Elros
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Avril 2009
    Messages
    403
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2009
    Messages : 403
    Points : 912
    Points
    912
    Billets dans le blog
    9
    Par défaut
    Merci de m'avoir répondu je vais me renseigner pour MSFlexGrid.
    Si quelqu'un à la même chose pour DataGrid et si c'est possible (de trouver une solution pour .textmatrix) se serait super

    merci d'avance.
    Elros.
    Un message vous a aidé ? Votez en cliquant sur Pensez au bouton

    Venez faire un petit tour sur mon blog : Elros - Bienvenue dans le monde de la Business Intelligence

  4. #4
    Membre éprouvé
    Avatar de Elros
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Avril 2009
    Messages
    403
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2009
    Messages : 403
    Points : 912
    Points
    912
    Billets dans le blog
    9
    Par défaut
    Si tu es sur que c'est du vb.net je t'en prie déplace le dans la bonne section et désolé de la gêne occasionnée et par ailleurs de mon ignorance de ne pas savoir faire la différence entre du vb.net et vb6
    Un message vous a aidé ? Votez en cliquant sur Pensez au bouton

    Venez faire un petit tour sur mon blog : Elros - Bienvenue dans le monde de la Business Intelligence

  5. #5
    Membre habitué
    Profil pro
    Développeur informatique
    Inscrit en
    Mars 2008
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2008
    Messages : 155
    Points : 178
    Points
    178
    Par défaut
    La solution que j'ai proposé est pour VB6. N'ayant encore aucune expérience en .net, je ne sais pas si cela va fonctionner

  6. #6
    Membre averti Avatar de roster
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    397
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 397
    Points : 426
    Points
    426
    Par défaut
    Citation Envoyé par Elros Voir le message
    Et voilà ma question :
    Comment faire en sorte que les lignes d'un DataGridView soient des liens, et que lorsque l'on clic sur un lien celui ci nous envoi sur une autre formulaire avec toutes les données de ligne cliquée.
    Il faut par exemple gérer l'évenement CellContentClick: http://msdn.microsoft.com/fr-fr/library/system.windows.forms.datagridview.cellcontentclick(VS.80).aspx

  7. #7
    Membre éprouvé
    Avatar de Elros
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Avril 2009
    Messages
    403
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2009
    Messages : 403
    Points : 912
    Points
    912
    Billets dans le blog
    9
    Par défaut
    J'ai réglé mon problème

    Déjà j'avais pas compris que DataGrid et DataGridView étaient différents, donc déjà je partais mal.
    Étant donné que je travail avec un DataGridView pour sélectionner toute la ligne lors d'un click il suffit de faire ceci ( ou de changer dans les propriétés du DataGridView le SelectionMode) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DataGridViewCli.SelectionMode = DataGridViewSelectionMode.FullRowSelect
    Après pour récupérer les données cela diffère d'un DataGrid, voila comment j'ai fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub DataGridViewCli_CellClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridViewCli.CellClick
            Dim varNumCli As String
            ' condition pour ne pas prendre en compte le click sur le headers qui est e.RowIndex = -1
            If e.RowIndex >= 0 Then
                'permet de recuperer le numéro du client e.ColumnIndex = 0
                varNumCli = DataGridViewCli.Item(0, e.RowIndex).Value
     
                FicheClient.Show()
            End If
        End Sub
    PS: je n'ai pas utilisé le CellContentClick parce que j'ai interdit la modification donc on ne peut pas clicker sur le contenu mais seulement sur la cellule (dans mon cas la ligne)

    EDIT: merci d'avoir pris de votre temps et merci à http://plasserre.developpez.com/v3-16.htm
    Un message vous a aidé ? Votez en cliquant sur Pensez au bouton

    Venez faire un petit tour sur mon blog : Elros - Bienvenue dans le monde de la Business Intelligence

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

Discussions similaires

  1. [XL-2013] Script pour mettre des données sur une même ligne
    Par initial32 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 09/12/2014, 13h45
  2. Réponses: 3
    Dernier message: 23/04/2009, 12h44
  3. Réponses: 4
    Dernier message: 14/08/2008, 16h34
  4. Réponses: 2
    Dernier message: 16/03/2006, 19h07
  5. Quel langage pour envoyer un fichier sur une adresse
    Par dai.kaioh dans le forum Développement
    Réponses: 2
    Dernier message: 02/04/2004, 16h38

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