Texte pas dans une textbox [Résolu]

Messages postés
46
Date d'inscription
samedi 6 novembre 2010
Statut
Membre
Dernière intervention
19 mai 2011
- - Dernière réponse :  seb4stien13 - 17 nov. 2010 à 16:14
Salut,
Alors je vous explique mon problème, J'ai une image comme background et je souhaiterais que mon texte apparaissent sur l'image sans la zone blanche et que l'on puisse voire entre les lettre l'image !

Merci d'avance !
Afficher la suite 

20/32 réponses

Meilleure réponse
Messages postés
111
Date d'inscription
dimanche 24 décembre 2000
Statut
Membre
Dernière intervention
17 novembre 2012
5
3
Merci
Oops !
J'avais pris pour tester une image dans "MesDocuments".
Le bon code est donc celui-là :

Public Class Form2

    Private imageDeFond As New Bitmap("image01.jpg")    
    'L'image doit se trouver pour l'exemple dans le dossier de l'exécutable 
    'mais on pourrait aussi la mettre en ressources

    Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        '
    End Sub

    Private Sub Form2_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Me.Paint
        Dim maFonte As New Font("Microsoft Sans Serif", 12, FontStyle.Bold)
        'Dessiner l'image
        e.Graphics.DrawImage(imageDeFond, 0, 0, imageDeFond.Width, imageDeFond.Height)
        'Dessiner le texte "Coucou", avec maFonte, en noir, à la position (10,100)
        e.Graphics.DrawString("Coucou", maFonte, Brushes.Black, 10, 100)
    End Sub

End Class

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 193 internautes nous ont dit merci ce mois-ci

Commenter la réponse de mdevaux62
Messages postés
269
Date d'inscription
dimanche 31 mai 2009
Statut
Membre
Dernière intervention
12 mars 2011
0
Merci
Salut, apparemment il n'y a pas de
propriété BackgroundImage sur les TextBox
& RichTextBox (je me demandais si c'était
disponible dans les versions Pro de Visual Basic .net ...)
Alors ce qui est possible c'est d'utiliser
un évenement KeyPress pour dessiner sur l'image
donc avec un code comme ceci :
Private Sub Form1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles Me.KeyPress

Dim g As Graphics = PictureBox1.CreateGraphics
g.DrawString(e.KeyChar, Me.Font, Brushes.Black, 1, 1)
g.DrawString(e.KeyChar, Me.Font, Brushes.White, 2, 2)

End Sub

Après, à toi de programmer pour obtenir ce que tu
souhaite faire Bonne prog
Commenter la réponse de raffika
Messages postés
269
Date d'inscription
dimanche 31 mai 2009
Statut
Membre
Dernière intervention
12 mars 2011
0
Merci
PS : J'ai oublié de commenter les lignes :
g.DrawString(e.KeyChar, Me.Font, Brushes.Black, 1, 1)
'' 1er argument : la touche du clavier pressée
'' 2ème : la police de caractère à utiliser
'' 3ème : la couleur
'' 4ème et 5ème : les coordonnées en pixels
'' du coin supérieur gauche de la lettre à dessiner
Commenter la réponse de raffika
Messages postés
46
Date d'inscription
samedi 6 novembre 2010
Statut
Membre
Dernière intervention
19 mai 2011
0
Merci
Merci de ta réponse mais j'ai oublié de préciser que le texte est fixe il ne changeras pas !
(Je vais essayer et merci beaucoup)
Commenter la réponse de angelblood
Messages postés
269
Date d'inscription
dimanche 31 mai 2009
Statut
Membre
Dernière intervention
12 mars 2011
0
Merci
Bah dans ce cas là tu peux faire :
g.DrawString("Le texte", Me.Font, Brushes.Black, 1, 1)
Salut
Commenter la réponse de raffika
Messages postés
46
Date d'inscription
samedi 6 novembre 2010
Statut
Membre
Dernière intervention
19 mai 2011
0
Merci
Merci mais je le place ou ? ^^
Car il ne fait référence a aucune label !

Merci de tes réponse rapide.
Commenter la réponse de angelblood
Messages postés
269
Date d'inscription
dimanche 31 mai 2009
Statut
Membre
Dernière intervention
12 mars 2011
0
Merci
Sur une PictureBox, sinon si tu veux le placer
la Form remplace la ligne
Dim g As Graphics = PictureBox1.CreateGraphics
par
Dim g As Graphics = Me.CreateGraphics
Donc pour dessiner sur la Form au lieu d'une PictureBox1
Ensuite pour placer le texte à la bonne position
tu devra spécifier la position en pixels :
g.DrawString("Le texte à dessiner", Me.Font, Brushes.Black, 10, 20)
Donc dans cette ligne le texte est dessiné à la
position 10;20 ce qui signifie que le coin supérieur gauche
de Le texte à dessiner sera positionné à 10 pixels de
la bordure gauche de la form ou de la picturebox
et à 20 pixels de la bordure en haut de la form ou de la picturebox
Voilà, si tu as d'autres questions ...
Bonne soirée
Commenter la réponse de raffika
Messages postés
46
Date d'inscription
samedi 6 novembre 2010
Statut
Membre
Dernière intervention
19 mai 2011
0
Merci
Merci je te dit si sa marche demain !
Commenter la réponse de angelblood
Messages postés
46
Date d'inscription
samedi 6 novembre 2010
Statut
Membre
Dernière intervention
19 mai 2011
0
Merci
Salut, J'ai essayer je ne crois pas que sa marche regarde mon code :

Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Dim g As Graphics = PictureBox8.CreateGraphics
        g.DrawString("sssssssssssssss", Me.Font, Brushes.Black, 2, 2)
        End sub


Merci
Commenter la réponse de angelblood
Messages postés
269
Date d'inscription
dimanche 31 mai 2009
Statut
Membre
Dernière intervention
12 mars 2011
0
Merci
Ca devrai marcher...
Normalement sssssssssssssss de couleur noir devrais
être dessinée sur le PictureBox8 dans le coin
supérieur gauche, à 2;2 pixels...
Le problème vient soit du fond de la PictureBox8
qui, si il est noir on ne verrais rien,
ou soit la lettre dessinée est trop petite
et ne se vois pas, donc regarder le 2ème argument, Me.font
qui renvoie la propriété Font de la Form (Me),
agrandir un peu la taille de la police de caractères
de cette Form, je ne connais pas trop l'utilisation des
Font c'est pour ça que dans mon exemple, j'ai choisis
une Font déjà existante, celle de la Form (Me).
Sinon si malgré tout ça ça ne fonctionne pas,
l'image dans le PictureBox8 est dans la propriété
BackGroundImage ou Image ?
Salut
Commenter la réponse de raffika
Messages postés
46
Date d'inscription
samedi 6 novembre 2010
Statut
Membre
Dernière intervention
19 mai 2011
0
Merci
J'ai essayer avec BackGroundImage et Image sa ne fonctionne pas avec les 2
Commenter la réponse de angelblood
Messages postés
111
Date d'inscription
dimanche 24 décembre 2000
Statut
Membre
Dernière intervention
17 novembre 2012
5
0
Merci
Vire le Background et utilise l'évènement Paint.
Comme ça :

Public Class Form2

    'Private imageDeFond As New Bitmap("image01.jpg")
    Private imageDeFond As New Bitmap(My.Computer.FileSystem.SpecialDirectories.MyDocuments & "\image01.jpg")
    'L'image doit se trouver pour l'exemple dans le dossier de l'exécutable 
    'mais on pourrait aussi la mettre en ressources

    Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        '
    End Sub

    Private Sub Form2_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Me.Paint
        Dim maFonte As New Font("Microsoft Sans Serif", 12, FontStyle.Bold)
        'Dessiner l'image
        e.Graphics.DrawImage(imageDeFond, 0, 0, imageDeFond.Width, imageDeFond.Height)
        'Dessiner le texte "Coucou", avec maFonte, en noir, à la position (10,100)
        e.Graphics.DrawString("Coucou", maFonte, Brushes.Black, 10, 100)
    End Sub

End Class
Commenter la réponse de mdevaux62
Messages postés
46
Date d'inscription
samedi 6 novembre 2010
Statut
Membre
Dernière intervention
19 mai 2011
0
Merci
Merci sa marche et juste comment je change la police et la taille !

Merci beaucoup a vous deux !
Commenter la réponse de angelblood
Messages postés
46
Date d'inscription
samedi 6 novembre 2010
Statut
Membre
Dernière intervention
19 mai 2011
0
Merci
Et dernière parenthèse que j'ai oublié : Si je change le .exe d'endroit l'image sera toujours trouver ?
Commenter la réponse de angelblood
Messages postés
46
Date d'inscription
samedi 6 novembre 2010
Statut
Membre
Dernière intervention
19 mai 2011
0
Merci
Oups encore oublié de demander (Tkt c'est la derniere ) : On peut mettre des lien dedans ?
Commenter la réponse de angelblood
Messages postés
269
Date d'inscription
dimanche 31 mai 2009
Statut
Membre
Dernière intervention
12 mars 2011
0
Merci
Non, quand tu déclare :
Private imageDeFond As New Bitmap("image01.jpg")
ça sous-entends que c'est le fichier image01.jpg
qui se trouve dans le dossier de l'exe.
Si tu veux mettre une image incluse au projet,
je t'ai déjà expliqué, propriétés du projet puis
onglet Ressources là tu ajoute une image puis tu l'utilise comme ceci :
Private imageDeFond As Bitmap = My.Resources.nom_du_fichier
par exemple, salutations.
Commenter la réponse de raffika
Messages postés
46
Date d'inscription
samedi 6 novembre 2010
Statut
Membre
Dernière intervention
19 mai 2011
0
Merci
Merci beaucoup
Commenter la réponse de angelblood
Messages postés
111
Date d'inscription
dimanche 24 décembre 2000
Statut
Membre
Dernière intervention
17 novembre 2012
5
0
Merci
Pour la police, tu la changes comme ceci :

 Dim maFonte As New Font("Microsoft Sans Serif", 12, FontStyle.Bold)


Nom de la police : Microsoft sans Serif
Taille : 12 points
Style : ici en gras FontStyle.Bold, normal FontStyle.Regular

Pour l'image le mieux est de la stocker en ressources :
1) Tu cliques le menu "Projet" et sélectionnes "Propriétés de l'application"
2) Tu cliques l'onglet "Ressources" puis "Ajouter une ressource" et sélectionnes "Ajouter un ficher existant".
3) Tu sélectionnes ton image et elle s'ajoute au projet (elle sera intégrée à l'application).
4) Il ne te reste plus qu'à modifier la ligne affichant l'image de cette façon :

e.Graphics.DrawImage(My.Resources.Image01, 0, 0, imageDeFond.Width, imageDeFond.Height)
Commenter la réponse de mdevaux62
Messages postés
269
Date d'inscription
dimanche 31 mai 2009
Statut
Membre
Dernière intervention
12 mars 2011
0
Merci
Ha et pour ajouter un lien c'est possible,
alors dans ce cas il faudrait gérer ça dans l'évenement
MouseDown ou tu peux récupérerla position de la souris
avec 'e' , comme ceci si tu veux voir ce que ça donnes,
met cette ligne dans l'évenement MouseDown de ta PictureBox :
MsgBox("Position = " & e.X & ";" & e.Y)
donc toujours en pixels, salut.
Commenter la réponse de raffika
Messages postés
111
Date d'inscription
dimanche 24 décembre 2000
Statut
Membre
Dernière intervention
17 novembre 2012
5
0
Merci
Post scriptum :
Tu peux aussi afficher le texte dans un rectangle sur plusieurs lignes :
e.Graphics.DrawString("Coucou" & vbCrLf & "les amis !", maFonte, Brushes.Black, New Rectangle(10, 100, 200, 50))


Post scriptum number 2 :
Plus on ajoute de choses dans les ressources et plus la compilation du programme est longue. C'est bon à savoir...
Commenter la réponse de mdevaux62