VB.Net Texte dans un PictureBox

Résolu
cs_JeffC1977 Messages postés 928 Date d'inscription vendredi 10 novembre 2000 Statut Membre Dernière intervention 23 septembre 2023 - 1 oct. 2007 à 19:16
taouale2 Messages postés 24 Date d'inscription jeudi 4 novembre 2004 Statut Membre Dernière intervention 4 février 2010 - 4 oct. 2007 à 23:39
Salut....

J'utilise un picturebox et je fais dessiner plusieurs croix qui sont des coordonnées géographiques.
Chaque coordonnées (croix) à un numéro.
Je veux faire dessiner ce numéro à cote de chaque croix...

Je pense utiliser ce code mais....

Picturebox1_Graphics.DrawString(Numero, MyPen, Brush, CoordXPicturebox + 5, CoordYPicturebox + 5)

Que vaut Brush.... Je regarde sur MSDN je je m'y perd un peu trop....

Quelqu'un peut me dire comment définir la variable Brush et à quoi elle sert...

merci d'avance

33 réponses

cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
2 oct. 2007 à 12:37
Tu peux utiliser un event comme Paint par exemple, qui donne accès au contexte graphique (form load n'y donne pas accès)

<hr />
-My Blog-
0
cs_JeffC1977 Messages postés 928 Date d'inscription vendredi 10 novembre 2000 Statut Membre Dernière intervention 23 septembre 2023 4
2 oct. 2007 à 12:46
Re.. Lire le message précédent.....

J'ai déclaré cette variable
Public objGraphics
As Graphics

et si je modifie ton code, et je fais cela...
Il y a absolument rien qui s'inscrit dans le picturebox sinon que les croix...


Numéro est le numéro qui sera instrit à côté de la croix auquel il se rapporte.
CoordXPicturebox + 5: Coordonnée en X de l'emplacement du Texte
CoordYPicturebox + 5: Coordonnée en X de l'emplacement du Texte


objGraphics.DrawString(Numero, Me.Font,
New SolidBrush(Color.Black), CoordXPicturebox + 5, CoordYPicturebox + 5)
0
cs_JeffC1977 Messages postés 928 Date d'inscription vendredi 10 novembre 2000 Statut Membre Dernière intervention 23 septembre 2023 4
2 oct. 2007 à 12:48
Bon ok j'ai trouvé....

Picturebox1_Graphics.DrawString(Numero,

Me.Font,
New SolidBrush(Color.Black), CoordXPicturebox + 5, CoordYPicturebox + 5)

Merci mille fois...
0
cs_JeffC1977 Messages postés 928 Date d'inscription vendredi 10 novembre 2000 Statut Membre Dernière intervention 23 septembre 2023 4
2 oct. 2007 à 12:53
Et la dernière question....




le Me.Font...

Comment je fais pour lui dire que je veux une police de 3

le Me.Font = Tahoma Size 9  et Regular

J'Aimerais par exmeple avoir Time New Roman Size 3 en Gras...

 ???
0

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

Posez votre question
cs_JeffC1977 Messages postés 928 Date d'inscription vendredi 10 novembre 2000 Statut Membre Dernière intervention 23 septembre 2023 4
2 oct. 2007 à 13:30
je mets où ce code.....

et je mets quoi avant le System.Drawing...
J'ai essayé de mettre que ton code = erreur et j'ai essayé
Picturebox1_Graphics.DrawString.Font(

"Arial", 3, FontStyle.Bold)

= Erreur....

Bref je suis perdu....

merci de ton aide...
0
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
2 oct. 2007 à 13:31
Tu dois le remplacer par Me.Font

<hr />
-My Blog-
0
cs_JeffC1977 Messages postés 928 Date d'inscription vendredi 10 novembre 2000 Statut Membre Dernière intervention 23 septembre 2023 4
2 oct. 2007 à 13:37
Ca fonctionne pas....
Je venais de l'essayer et ca me sort comme erreur...
Picturebox1_Graphics.DrawString(Numero, System.Drawing.Font(

"Arial", 3, FontStyle.Bold),
New SolidBrush(Color.Black), CoordXPicturebox + 5, CoordYPicturebox + 5)

Error 1 'Font' is a type in 'Drawing' and cannot be used as an expression
0
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
2 oct. 2007 à 13:38
il faut mettre un new devant...
Tu maitrises pas trop vb.net hein !?

<hr />
-My Blog-
0
cs_JeffC1977 Messages postés 928 Date d'inscription vendredi 10 novembre 2000 Statut Membre Dernière intervention 23 septembre 2023 4
2 oct. 2007 à 13:46
Effectivement j'apprends peu a peu.... Grace à ce site....

Merci beaucoup....
0
taouale2 Messages postés 24 Date d'inscription jeudi 4 novembre 2004 Statut Membre Dernière intervention 4 février 2010
4 oct. 2007 à 22:24
Salut ! je débute en VB.NET et je cherche à écrire un texte dans un picturebox pour une appli pocket PC.
J'ai suivi les différents conseils de ce forum (et d'autres d'ailleur !), mais je me retrouve coincé par une erreur :
'DrawString' n'est pas un membre de 'System.Windows.Forms.PictureBox'.
Voici mon code :
PictureBox1.DrawString(

"toto",
Me.Font,
New SolidBrush(Color.Black), 5, 5)

jeffC, ou quelqu'un d'autre, j'ai cru comprendre que tu y étais arrivé ; pourrais tu m'aider ?
Est ce que ça a à voir avec ça : Public objGraphics As Graphics ?

D'avance merci !
0
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
4 oct. 2007 à 22:26
DrawString n'est pas une méthode de PictureBox les gars !!!!!!!
Pour utiliser DrawString, il faut avoir un Graphics qui provient par exemple d'un contexte graphique, comme dans l'event Paint.

<hr />
-My Blog-
0
taouale2 Messages postés 24 Date d'inscription jeudi 4 novembre 2004 Statut Membre Dernière intervention 4 février 2010
4 oct. 2007 à 22:54
Ok !!!
C'est toi qui avait posté :
e.Graphics.DrawString(

"test",
Me.Font,
New SolidBrush(Color.Coral), 20, 20)

Pas de problème mais , comment l'intégré au code et le relier à Picturebox1 alors ???
Est ce que je peux utiliser cette évènement :

Private
Sub Form1_Paint(
ByVal sender
As
Object,
ByVal e
As System.Windows.Forms.PaintEventArgs)
Handles
MyBase.Paint

Je viens de VB6, je connais pas ces notions de "e.Graphics" et autre ...Merci de ton aide Bidou, constructive ...
0
taouale2 Messages postés 24 Date d'inscription jeudi 4 novembre 2004 Statut Membre Dernière intervention 4 février 2010
4 oct. 2007 à 23:39
C'est bon j'ai trouve ... C'est le coup du e.Graphics qui m'a mit sur la voie, donc merci Bidou.


Sur Pocket PC, le contrôle PictureBox n'a pas d'évènement Paint, il faut donc passer par un Pannel.
Voici un exemple qui dessine une image bmp (à la racine du dossier) puis écrit un texte :

Public
Class Form1



Private
AppPath

As



String
= System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly.GetName.CodeBase)









Private



Sub
Panel1_Paint(

ByVal
sender

As



Object
,

ByVal
e

As
System.Windows.Forms.PaintEventArgs)

Handles
Panel1.Paint


Dim
SplashBitmap

As
Bitmap


Dim
wBuffer

As



String

wBuffer = AppPath &




"\Mon_Image.bmp"

SplashBitmap =




New
Bitmap(wBuffer)e.Graphics.FillRectangle(


New
TextureBrush(SplashBitmap), 0, 0, 21, 16)               '21 et 16 sont les dimensions de l'image, mais peu importe
e.Graphics.DrawString(


"toto"
,

Me
.Font,

New
SolidBrush(Color.Black), 0, 0)


End



SubEnd





Class

L'avantage du pannel c'est qu'il est un des seul contrôle à gérer le Paint et le Click ... Pour un PDA c'est pratique !
Bonne prog !
0
Rejoignez-nous