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 :

Solidariser un contrôle avec un autre.


Sujet :

C#

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 46
    Points : 34
    Points
    34
    Par défaut Solidariser un contrôle avec un autre.
    Bonjour,

    Je travaille actuellement sur un module de Calendrier qui n'est pas à moi (à vrai dire, on a m'a demandé de travailler dessus).

    Le calendrier se compose d'une grille "Calendar" et, sur cette grille, on peut venir greffer des Items comme le montre l'image:


    Le calendrier n'était pas totalement adapté, on m'a donc demandé de le modifier légèrement: Il me faut rajouter un symbole de pointage en haut à droite des items, si celui ci est "pointé"; c'est le rond rouge (un picturebox) qu'on peut voir sur l'item DRAG de mon image.

    Le problème est que j'aimerais que ce picturebox se déplace et agisse exactement de la même manière que son item.
    J'aimerais que si l'item disparaît ou est déplacé, son marqueur aussi.

    J'ai pensé à la propriété .parent, mais j'ai deux problème: Je ne suis pas sur de savoir à quoi elle correspond vraiment, et je n'arrive pas à l'appliquer sur mon Item, quand je fais: MonItemCree = SonPictureBoxAssocie.Parent; VS me dit
    Impossible de convertir implicitement le type 'System.Windows.Forms.Control' en 'System.Windows.Forms.Calendar.CalendarItem'.
    D'avance, merci pour votre aide, si vous voulez du code, dites le !

  2. #2
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Points : 5 194
    Points
    5 194
    Par défaut
    L'item doit embarquer le "bouton route"

    et donc, si l'item bouge, la position de l'image du bouton appartenant au controle Item, il suivra sans problème...

    Donc, il faut que tu regardes comment se dessine l'item... et lui ajouter le bouton (soit au designer soit dans la methode "Draw") suivant la façon dont il a été codé...

    Mais surtout pas "la solidarité" de controle... berk, quelle horreur !!!

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 46
    Points : 34
    Points
    34
    Par défaut
    Je ne sais pas trop ce que tu veux dire par "bouton route" mais je pense que tu parles du Marqueur Rouge (qui est un PictureBox).

    Ceci dit, je vais aller trifouiller dans les Draw/Paint pour voir ce que ça donne, c'est une excellente idée (je suis encore très peu familier avec la création d'objets, surtout des contrôles visuels).

    Je reviendrais clore le topic si j'ai trouvé mon bonheur !

    Merci.

    PS: La solidarité, c'était vraiment pour trouver un terme qui approchait mon problème, je ne savais pas vraiment comme faire.

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 46
    Points : 34
    Points
    34
    Par défaut
    Wow, ça marche bien !
    Au début, j'avais gardé ma PictureBox mais l'image n'était pas chargé (je voyais une image "cassée") et la PictureBox scintillait. J'ai utilisé un dessin graphique (un rond) pour me faciliter la tache au cas ou c'était un problème de création d'item ou autre et ça marche super !

    Le Code qui nous intéresse:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public virtual void OnDrawItemContent(CalendarRendererItemBoundsEventArgs e)
            {
                e.Graphics.FillEllipse(new SolidBrush(Color.Red), e.Item.Bounds.X + e.Item.Bounds.Width - vLargeurMarqueur - 2, e.Item.Bounds.Y + 2, vLargeurMarqueur , vHauteurMarqueur);
            }
    Maintenant, je cherche pour remplacer ce rond par mon image, mais je pense que ça va être facile (e.Graphics.DrawImage(vImage, vPos); ?!).

    Edit: Trouvé, c'était bien ça.
    La même chose donc, mais pour une image (sans scintillement):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    public virtual void OnDrawItemContent(CalendarRendererItemBoundsEventArgs e)
            {
            System.Drawing.Image vImage = Image.FromFile(@"C:\...Chemin...\\Marqueur.gif");
            System.Drawing.Point vPos = new System.Drawing.Point();
            vPos.X = e.Item.Bounds.X + e.Item.Bounds.Width - vImage.Width - 2;
            vPos.Y = e.Item.Bounds.Y + 2;
     
            e.Graphics.DrawImage(vImage, vPos);
            }
    Voilà, encore merci

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 01/01/2012, 22h47
  2. Interchanger un JPanel avec un autre
    Par jfz dans le forum Agents de placement/Fenêtres
    Réponses: 10
    Dernier message: 09/01/2010, 20h38
  3. Réponses: 5
    Dernier message: 22/11/2006, 23h24
  4. Réponses: 5
    Dernier message: 02/09/2004, 16h17
  5. [langage] Comparer Perl avec d'autres langages comme C ?
    Par Anonymous dans le forum Langage
    Réponses: 3
    Dernier message: 10/08/2002, 23h52

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