Dessiner par dessus un control

bucherb Messages postés 412 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 13 août 2007 - 12 nov. 2004 à 17:55
Ordinastie Messages postés 93 Date d'inscription samedi 29 janvier 2005 Statut Membre Dernière intervention 17 octobre 2008 - 16 août 2005 à 05:13
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

cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
13 nov. 2004 à 08:29
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#
1
Ordinastie Messages postés 93 Date d'inscription samedi 29 janvier 2005 Statut Membre Dernière intervention 17 octobre 2008 2
16 août 2005 à 05:09
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();
}
1
Ordinastie Messages postés 93 Date d'inscription samedi 29 janvier 2005 Statut Membre Dernière intervention 17 octobre 2008 2
16 août 2005 à 05:13
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 )
1
cs_Bidou Messages postés 5486 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
12 nov. 2004 à 19:50
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 ???
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
bucherb Messages postés 412 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 13 août 2007
12 nov. 2004 à 20:15
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
0
TheSaib Messages postés 2367 Date d'inscription mardi 17 avril 2001 Statut Membre Dernière intervention 26 décembre 2007 23
12 nov. 2004 à 21:16
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
0
bucherb Messages postés 412 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 13 août 2007
13 nov. 2004 à 00:36
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
0
Rejoignez-nous