Problème avec Graphics + Helpppppp + Au secourssss (je suis bilingue) [Résolu]

Signaler
Messages postés
903
Date d'inscription
mercredi 23 février 2005
Statut
Membre
Dernière intervention
16 juin 2010
-
Messages postés
11
Date d'inscription
mercredi 21 juillet 2004
Statut
Membre
Dernière intervention
31 août 2005
-
Bonjour à tous,





J'ai un panel et en faite je dois afficher dedans un nombre illimité de
barre (diagramme en baton) dedans. Le problème est que mon panel a pas
une taille très grande. Soit je reajuste la largeur de mes bâtons mais
la on risque de tomber de l'invisibilité ou soit je trouve un moyen
pour scrooler. donc ma question est : Quelq'un serait t'il comment
faire un scrool avec des objets graphics à l'interieur ???



Par avance, merci.
A voir également:

9 réponses

Messages postés
108
Date d'inscription
vendredi 11 juillet 2003
Statut
Membre
Dernière intervention
27 novembre 2007

Bonsoir,
Tu peux utiliser les fonctionnalités de défilement automatique.
1) S'assurer que la propriété AutoScroll est à true.
2) Ensuite, tu calcules la taille nécessaire pour l'affichage global.
3) Tu assignes la taille calculée à la propriété AutoScrollMinSize.
4) Le container affichera automatiquement une barre de défilement pour permettre l'affichage global.
5) Pour créer un offset de l'objet Graphics, lorsque tu auras besoin de peindre, tu utiliseras e.Graphics.TranslateTransform avec les valeurs x et y de la propriété AutoScrollPosition.

-- AOGie --
Messages postés
108
Date d'inscription
vendredi 11 juillet 2003
Statut
Membre
Dernière intervention
27 novembre 2007

Pour faire un simple test et voir apparaître la barre de défilement, colle un panel (150x150 environ) sur un formulaire.

Puis dans le constructeur :

panel1.AutoScroll = true;

panel1.AutoScrollMinSize = new Size(600, 0);



Tu verras apparaître une barre horizontale...

-- AOGie --
Messages postés
108
Date d'inscription
vendredi 11 juillet 2003
Statut
Membre
Dernière intervention
27 novembre 2007

C'est normal car tu dois effectuer la translation de l'objet Graphics avant de commencer à dessiner !

-- AOGie --
Messages postés
903
Date d'inscription
mercredi 23 février 2005
Statut
Membre
Dernière intervention
16 juin 2010
2
J'ai fais pour l'instant :



private Graphics pg3 ;

private Bitmap bitmap ;



Dans l'événement load



bitmap_texte= new Bitmap(1500, 1200);

pg3 = Graphics.FromImage(bitmap_texte);

panel.Invalidate() ;





Dans l'evénement Paint



e.Graphics.DrawImageUnscaled(bitmap_texte, 0, 0);

Brush br1 = new SolidBrush(Color::Black) ;

pg3.FillRectangle(br1,0,0,1000,2000) ;



J'ai fais Panel : autoscroll = true, scrollminsize(100,100) ; et je vois pas la barre de defilement, est ce normal ?
Messages postés
903
Date d'inscription
mercredi 23 février 2005
Statut
Membre
Dernière intervention
16 juin 2010
2
ah ok , merci, c'est bon j'ai reussi à faire ca, sinon ta technique
marche mais j'ai du faire un truc qui fallait pas parceque j'ai
dessiner 4 barres je bouge la barre de defilement vers la droite je
vois apparaitre ma barre rouge mais si je reviens en arriere ca fait un
cafouilli si bien que tout finis par devenir rouge et si je continu en
avant tout finis par devenir rouge aussi.





Dans l'événement Paint





e.Graphics.DrawImageUnscaled(bitmap_texte, 0, 0);



Brush br1 = new SolidBrush(Color::Black) ;

Brush br2 = new SolidBrush(Color::Blue) ;

Brush br3 = new SolidBrush(Color::Orange) ;

Brush* br4 = new SolidBrush(Color::Red) ;

pg3.FillRectangle(br1,10,10,50,300) ;

pg3.FillRectangle(br2,100,10,50,300) ;

pg3.FillRectangle(br3,200,10,50,300) ;

pg3.FillRectangle(br4,300,10,50,300) ; <--- ma barre rouge

Point a = panel.AutoScrollPosition ;

pg3.TranslateTransform(a.get_X(),a.get_Y()) ;
Messages postés
903
Date d'inscription
mercredi 23 février 2005
Statut
Membre
Dernière intervention
16 juin 2010
2
ah oui en effet, je le savais mais je voulais te mettre à l'epreuve, merci bcp.
Messages postés
11
Date d'inscription
mercredi 21 juillet 2004
Statut
Membre
Dernière intervention
31 août 2005

Bonjour à tous,
je veut générer des diagrammes(EX:Baton....).est ce que Quelq'un peut m'aider.
Merci
Messages postés
903
Date d'inscription
mercredi 23 février 2005
Statut
Membre
Dernière intervention
16 juin 2010
2
fais un panel et dedans dessine avec fillrect(color,a,a,a,a) et
utilise une fonction pour convertir t'es valeurs à la bonne echelle.
Messages postés
11
Date d'inscription
mercredi 21 juillet 2004
Statut
Membre
Dernière intervention
31 août 2005

Merci,
mais le diagramme en baton n'est qu'un exemple,je veut savoir est-ce qu'il y a un controleur qui génere les diagrame apartire des procedures,si oui alors comment le utiliser.
Merci pour votre reponse.