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 :

[VB.NET][Datagrid] quelle cellule est AFFICHEE


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    876
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 876
    Par défaut [résolu][VB.NET][Datagrid] quelle cellule est AFFICHEE
    Bonjour,

    Comment savoir quelle est la première cellule qui s'affiche en haut à gauche dans un datagrid ? et ce indépendamment de ma cellulle sélectionnée. Par contre, si je scroll dans une direction, cette cellulle change, même si ma current cell est inchangée

    Il ne 'sagit pas de CurrentCell, ni de firstVisibleColumn …

  2. #2
    Expert confirmé
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Par défaut
    Par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Private myFirstVisibleCellLocation As Point
     
     '... Je recupère le (X,Y) de la première celllule visible du datagrid
     myFirstVisibleCellLocation = Me.MyDataGrid.GetCellBounds(0, 0).Location
     '... je recupère la ligne et colonne qui correspond dans la source
     Dim hi As DataGrid.HitTestInfo
     hi = Me.MyDataGrid.HitTest(Me.myFirstVisibleCellLocation)
     Dim MyColumn As Integer = hi.Column
     Dim myRow As Integer = hi.Row
     '...

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    876
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 876
    Par défaut
    neguib a écrit
    En fait, c'est assez simple, puisque que tu dispose de la proprité Item du Datagrid qui te renverra toujours les cellules visibles à l'ecran


    En fait si j'écris
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    me.lblMsg.text = me.dataGrid1.Item(0,0)
    il me retourne invariablement le contenu de ma cellule (0,0), même si celle-ci est devenue invisible du fait d'un scroll.

    Pour ce qui est du hitTestInfo, ça vise également une cellule particulière. Ce que je cherche, c'est à tout moment déterminer de quelle ligne et de quelle colonne de ma source, est la cellule en haut à gauche de mon datagrid. Exemple :

    datasource
    ligne 1: arbre ; vert ;150
    ligne 2: fruit; rouge;300
    ....

    Datagrid à l'ouverture, je vois
    arbre ; vert ;150
    fruit; rouge;300
    ...

    Je clique une fois sur scroll vertical vers le bas, je vois
    fruit; rouge;300
    ...

    Je voudrais qu'avant le click sur le scrollBar la valeur de retour soit "arbre" et qu'après le click, ce soit "Fruit"

  4. #4
    Expert confirmé
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Par défaut
    Je vois que tu n'as pas su utiliser mon code
    je vais donc te mâcher le boulot
    1. Tu as besoin de reperer dès le depart la localisation de la cellule(0,0)
    Donc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    'declarer le repère
    Private refLocation As Point
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        '...
        'initialiser le repère
        Me.refLocation = Me.MonDataGrid.GetCellBounds(0, 0).Location
     
    End Sub
    2. Ensuite, quelquepart tu as besoin de recuperer la cellule actuellement visible en haut à gauche (donc c'est toujours la même localisation t'es d'accord )
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub MonBouton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MonBouton.Click
        MsgBox(Me.MonDataGrid.HitTest(Me.refLocation).ToString())
    End Sub
    Tu verras bien si la valeur ne change pas après un scroll vers le bas

    Bon j'espère que cela te paraît plus clair maintenant (d'ailleurs je suis sûr de moi parce que j'ai testé le code donné )

    J'ai viré mon intro foireuse au post precedent et qui t'as certainement embrouillé

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    876
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 876
    Par défaut
    C'est beeeaaauuu

    Tu vois, je suis pas si bête mais il suffit d'expliquer longtemps !

    je n'ai pas trouvé le smilies avec des oreilles d'ânes (ouf)

    Il faut dire à ma décharge que tu as effectivement été dans les détails et qu'en plus, c'est plus simple que le code précédent.

    En tous cas, un tout grand merci et

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

Discussions similaires

  1. Trouver dans quelle cellule est un bouton
    Par Pierre.g dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 09/08/2008, 18h21
  2. savoir quelle page est affichée?
    Par theskel dans le forum Apache
    Réponses: 3
    Dernier message: 26/10/2006, 13h40
  3. [VB.NET] Datagrid coloration d'une cellule
    Par cosmos38240 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 26/07/2005, 14h35
  4. [C#.NET] Controle Saisie cellule du Datagrid
    Par lefebvse dans le forum Windows Forms
    Réponses: 2
    Dernier message: 21/04/2005, 14h56
  5. [VB.NET] Focus sur cellule de DataGrid
    Par daner06 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 02/05/2004, 21h12

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