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 Presentation Foundation Discussion :

GRID : Comment détecter les coordonnées de la cellule cliquée ?


Sujet :

Windows Presentation Foundation

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 39
    Points : 20
    Points
    20
    Par défaut GRID : Comment détecter les coordonnées de la cellule cliquée ?
    Bonjour à tous,
    Y a-t-il un moyen simple de détecter les coordonnées de la cellule cliquée sur un Grid ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    private void MyGrid_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
            {
                // Que mettre ici pour détecter sur quelle cellule on a cliqué ?
     
            }
    Sinon,
    j'ai des richtextbox dans toutes les cellules de mon Grid. Y a-t-il un moyen pour détecter le nom de la richtextbox qui a été cliquée ?

    Merci

  2. #2
    Membre averti Avatar de bellak
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2008
    Messages
    325
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juillet 2008
    Messages : 325
    Points : 341
    Points
    341
    Par défaut
    Salut ,
    tu as une methode pour connaitre n'importe quel objet :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ((Control)sender).?? //par exemple name

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 39
    Points : 20
    Points
    20
    Par défaut
    Dans ce cas, sender = Grid.
    Bien évidemment ça ne me sert pas puisque j'ai besoin de savoir quel composant dans le Grid a été cliqué.

  4. #4
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    Et en utilisant e.OriginalSource ?

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 39
    Points : 20
    Points
    20
    Par défaut
    Citation Envoyé par Thomas Lebrun Voir le message
    Et en utilisant e.OriginalSource ?
    J'obtiens un objet de type "System.Windows.Documents.FlowDocument"
    Je ne sais pas à quoi cela correspond et comment m'en servir.

  6. #6
    Modérateur

    Avatar de Robin56
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juin 2009
    Messages
    5 297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juin 2009
    Messages : 5 297
    Points : 13 670
    Points
    13 670
    Par défaut
    Citation Envoyé par nazimyenier Voir le message
    J'obtiens un objet de type "System.Windows.Documents.FlowDocument"
    Je ne sais pas à quoi cela correspond et comment m'en servir.
    Et via le mode Debug, les variables sender ou e.OriginalSource, tu ne trouves vraiment aucuns éléments qui pourraient te servir au niveau de leur différentes propriétés ?

  7. #7
    Membre averti Avatar de bellak
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2008
    Messages
    325
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juillet 2008
    Messages : 325
    Points : 341
    Points
    341
    Par défaut
    Bien évidemment ça ne me sert pas puisque j'ai besoin de savoir quel composant dans le Grid a été cliqué.
    mais tu dois t'abonner directement a tes RichTextBoxs , tu ne dois pas passer par ton DataGrid

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 39
    Points : 20
    Points
    20
    Par défaut
    Citation Envoyé par bellak Voir le message
    mais tu dois t'abonner directement a tes RichTextBoxs , tu ne dois pas passer par ton DataGrid
    Ben non.
    Les RichTextBoxes seront ajoutées dynamiquement lors de l'exécution et je souhaite gérer les cliques au niveau du Grid.

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 39
    Points : 20
    Points
    20
    Par défaut
    J'ai écrit le code pour obtenir les coordoonnées de la cellule cliquée. En espérant que cela serve...

    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
     
     
    private void grid1_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
            {
     
     
     
     
                double actualWidth = 0, actualHeight = 0;
                int cellCoordinate_X = -1, cellCoordinate_Y = -1;
     
                while (actualWidth < e.GetPosition(this).X)
                {
                    cellCoordinate_X++;
                    actualWidth += grid1.ColumnDefinitions[cellCoordinate_X].ActualWidth;
     
                }
     
                while (actualHeight < e.GetPosition(this).Y)
                {
                    cellCoordinate_Y++;
                    actualHeight += grid1.RowDefinitions[cellCoordinate_Y].ActualHeight;
     
                }
     
                MessageBox.Show( cellCoordinate_X.ToString() + " ; " + cellCoordinate_Y.ToString() );
            }

Discussions similaires

  1. Comment obtenir les coordonnées d'une cellule?
    Par Antoine505 dans le forum Excel
    Réponses: 1
    Dernier message: 23/10/2013, 11h55
  2. Comment détecter les dimensions d'un cadre?!!
    Par insane_80 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 13/03/2006, 16h57
  3. Comment récupérer les coordonnées sur le bureau d'une form ?
    Par fma2112 dans le forum API, COM et SDKs
    Réponses: 2
    Dernier message: 22/02/2006, 23h43
  4. comment détecter les faces d'un mur
    Par einegel dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 17/01/2005, 23h12
  5. Réponses: 2
    Dernier message: 14/09/2004, 18h00

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