Dessiner par dessus un control

Signaler
Messages postés
412
Date d'inscription
lundi 26 mai 2003
Statut
Membre
Dernière intervention
13 août 2007
-
Messages postés
93
Date d'inscription
samedi 29 janvier 2005
Statut
Membre
Dernière intervention
17 octobre 2008
-
Hello!

Tout est dans le titre lol.
Est-ce que qqun sait comment dessiner par dessus un control qui se trouve dans une form?

Je fais des rectangles mais ils sont sous les controls snif..

-------------------------
Trambert le vert

7 réponses

Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
85
ah ba fallait le dire tt de suite que tu voulais un rectangle de selection

regarde du côté de la methode ControlPaint.DrawReversibleFrame (attention, coordonnées écran, donc voir la methode Control.PointToScreen)

Cocoricoooooooo !!!!
coq
MVP Visual C#
Messages postés
93
Date d'inscription
samedi 29 janvier 2005
Statut
Membre
Dernière intervention
17 octobre 2008
2
Je sais pas trop si ca correspond a ce que tu veux faire mais essaye ca sinon:

public override void OnPaint(PaintEventArgs e)
{
base(e);

e.Graphics.DrawRectangle();
}
Messages postés
93
Date d'inscription
samedi 29 janvier 2005
Statut
Membre
Dernière intervention
17 octobre 2008
2
Note: faudrait peut etre ajouter la fonction "Editer" sur le forum parce que apres relecture, je crois que je suis un peu hors sujet là
(dodotime j'en ai besoin et ca m'evitera d'ecrire n'importe quoi )
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
49
Salut,

Il faut prendre le context graphique du controle

Graphics g = myPanel.CreateGraphics();
g.DrawRectangle(new Pen(Color.Red), 10, 10, 50, 50);


J'espère que j'ai bien compris la question ???
Messages postés
412
Date d'inscription
lundi 26 mai 2003
Statut
Membre
Dernière intervention
13 août 2007

Ouais mais c'était pour savoir si il y avait une méthode plus simple, parce que les rectangles sont dynamiques, donc si ils passent par dessus un control je dois les redessiner.

Bon. MErci lol

-------------------------
Trambert le vert
Messages postés
2368
Date d'inscription
mardi 17 avril 2001
Statut
Modérateur
Dernière intervention
26 décembre 2007
19
Tu ne peux pas redessiner par dessus sans redessiner caque controle. Les controle enfants étant redessiner après la fenetre parente.

Cependant tu peux créer un panel virtuel qui a comme background l'image de la form parent. et dessus tu fais tes paints. Mais tu perdras les evenements sur tes controles.

Je ne sais pas exactement ce que tu veux faire, mais sur ce que j'ai compris il n'y a pas trop de solution.

::|The S@ib|::
MVP C#.NET
Messages postés
412
Date d'inscription
lundi 26 mai 2003
Statut
Membre
Dernière intervention
13 août 2007

Ouais l'autre problème que je rencontre, c'est que dans ma méthonde OnPaint de ma form, je check si des controls sont en intersection avec mon rectangle, et si c'est le cas je dessine ce qui doit être dessiné sur le control approprié, le problème c'est que ce que je dessine sur mon control est dessiné avant le Paint du control, ce qui fait que pendant un tour d'affichage c'est visible, mais directement ensuite c'est effacé par le control..

En fait l'application, c'est faire un rectangle de séléection de controls, et le problème c'est que le rectangle passe sous les controles, c'est tout. Ou dans le denier cas, tant qu'on bouge la souris, ça s'affiche, mais dès qu'on bouge plus, le trait qui devrait être sur le control ne s'affiche pas. Trop chiant.

Solution: Surcharger chaque type de control pour que le rectangle de séléction se dessine après le control lui-même.. Mais bon.... Arg

-------------------------
Trambert le vert