2009-05-11 9 views
11

J'ai recherché sur Google "Dessin texte sur picturebox C#", mais je n'ai rien trouvé d'utile. Puis j'ai recherché sur Google le texte C# "et j'ai trouvé du code, mais ça ne marche pas. Lorsque j'appelle la fonction, la couleur d'arrière-plan du formulaire devient blanche (elle est noire par défaut).Comment dessiner du texte sur une image?

Mes questions:

1: Est-ce que ce travail sur un picturebox?

2: Comment résoudre le problème?

+0

Vous pouvez simplement créer un objet Label, y écrire et le définir comme vous le souhaitez. – BobbyShaftoe

+1

La couleur d'arrière-plan de l'étiquette ne sera pas la même que celle de l'image à laquelle je souhaite écrire le texte. –

Répondre

34

Vous ne voulez pas que cet appel à Clear() - c'est pourquoi il tourne le fond blanc, et il couvrira votre image.

Vous souhaitez utiliser l'événement Paint dans PictureBox. Vous obtenez la référence graphique de e.Graphics, puis utilisez le DrawString() que vous avez dans votre exemple.

Voici un exemple. Il suffit d'ajouter une zone d'image à votre formulaire, et ajouter un gestionnaire d'événements pour l'événement Paint:

private void pictureBox1_Paint(object sender, PaintEventArgs e) 
{ 
    using (Font myFont = new Font("Arial", 14)) 
    { 
     e.Graphics.DrawString("Hello .NET Guide!", myFont, Brushes.Green, new Point(2, 2)); 
    } 
} 

(Notez que vous ne verrez pas le texte au moment de la conception - vous devrez exécuter le programme pour elle peinturer).

+0

Je ne comprends pas comment résoudre le problème. –

+0

Donnez-moi quelques minutes et je vais poster un exemple de code ... –

+1

+1; @John: n'appelez pas Dispose de l'objet e.Graphics dans l'événement Paint; vous ne faites que "l'emprunter". –

Questions connexes