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

C# Discussion :

Obtenir Panel à partir de ses coordonnées


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Juin 2007
    Messages
    359
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 359
    Par défaut Obtenir Panel à partir de ses coordonnées
    Bonjour, je débute sous C" et je vourais savoir comment faire pour retrouver un Panel lorsque l'on dispose de ses coordonnées X et Y.

    Merci

  2. #2
    Membre éprouvé
    Avatar de debug
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    1 034
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 034
    Par défaut
    Bonjour,

    Qu'est ce que tu entends par "retrouver" ton panel ?? Le retrouver dans la liste des contrôles ?
    Si c'est ça, utilise la méthode GetChildAtPoint(new point(x,y)); de ton formulaire.

  3. #3
    Membre éclairé
    Inscrit en
    Juin 2007
    Messages
    359
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 359
    Par défaut
    D'accord, merci, j'ai un autre petit problème, c'est que je ne réussis pas à retrouver les coordonnées du sender d'un évenement lorsque je veux redéfinir le DragEnter et le DragAndDrop d'un Control dérivé de Panel,...

    J'ai donc le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    protected override void OnDragDrop(DragEventArgs drgevent)
            {            
                int x, y;
                x = drgevent.X;
                y = drgevent.Y;
                Point pt=new Point(x,y);
                Form form_above = base.FindForm();            
                Control ctrl=form_above.GetChildAtPoint(pt);  //mais ici j'obtiens le mauvais controle
                Panel pan = (Panel)ctrl;
                Ticket tic = (Ticket)pan;
                this.Add((Ticket)tic);
                base.OnDragDrop(drgevent);                               
            }
    Seulement je me rends compte maintenant que les coordonnées x et y obtenues sont celles du point ou j'ai déposé le Panel, et donc, quand je fais : form.GetChildAtPoint(pt); tout ce que j'obtiens c'est le panel de réception, et non pas celui que je drag,...

    Et là, je ne sais pas comment faire pour retrouver les coordonnées non pas de l'objet récepteur, mais du sender !

    J'espère que c'est compréhensible,...

  4. #4
    Membre éprouvé
    Avatar de debug
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    1 034
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 034
    Par défaut
    Bonjour,

    Au lieu de passer par une surcharge de ta méthode essaies d'utiliser l'évent DragDrop où tu as bien l'objet sender

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    private void monobjet_DragDrop(object sender, System.Windows.Forms.DragEventArgs e)
    {
    }

  5. #5
    Membre éclairé
    Inscrit en
    Juin 2007
    Messages
    359
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 359
    Par défaut
    Merci,
    J'ai essayé de redéfinir dans ma classe Planning la fonction:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    private void Planning_DragDrop(object sender, System.Windows.Forms.DragEventArgs e)
            {
                nbrTicket = 5; //ici point d'arrêt, juste pour voir si ça rentre dedans
            }
    Mais je ne rentre jamais dedans, je ne comprends pas pourquoi, et pourtant, je rentre dans la fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    protected override void OnDragDrop(DragEventArgs drgevent)
    Mais là, je n'ai pas l'objet sender !!!

    Je ne sais plus quoi faire !!!

  6. #6
    Membre éclairé
    Inscrit en
    Juin 2007
    Messages
    359
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 359
    Par défaut
    Ok, j'ai compris ce que tu voulais dire à propos de la redéfinition du :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    private void Planning_DragDrop(object sender, System.Windows.Forms.DragEventArgs e)
    Seulement, le problème, c'est que je voudrais réussir à faire une classe dans laquelle ce comportement soit toujours le même, de manière à n'avoir pas à le recoder à chaque fois, et c'est là que ça coince, parceque, si cette fonction dépend de la form dans laquelle je me trouve, j'ai l'objet sender, mais je dois la redéfinir à chaque fois, tandis que si je redéfinis la méthode :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    protected override void OnDragDrop(DragEventArgs drgevent)
    Je ne réussis pas à accéder à mon objet dragué
    Si quelqu'un à une idée, surtout qu'il n'hésite pas, parce que moi c'est vide !

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

Discussions similaires

  1. [Google Maps] Obtenir adresse à partir de coordonnées GPS
    Par mikl86 dans le forum APIs Google
    Réponses: 1
    Dernier message: 22/11/2012, 21h25
  2. créer une matrice à partir de ses coordonnées
    Par Décembre dans le forum MATLAB
    Réponses: 5
    Dernier message: 20/01/2012, 20h00
  3. trouver un objet à partir de ses coordonnées
    Par ernestrenan dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 12/10/2011, 16h58
  4. Tracer une ROI à partir de ses coordonnées
    Par gaullum dans le forum ImageJ
    Réponses: 2
    Dernier message: 13/05/2010, 13h25
  5. Réponses: 2
    Dernier message: 06/06/2007, 16h41

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