2009-09-26 8 views
1

J'essaie de déterminer comment j'utiliserais une liste générique pour imprimer du texte avec des polices de différentes tailles. Je sais que je devrais parcourir la liste pour envoyer l'objet à la méthode Impression de texte avec différentes tailles de police sur la même page

Graphics.DrawString(String, Font, Brush, PointF) 

.

J'ai juste des problèmes pour définir les objets dans la liste afin que je puisse les parcourir et les imprimer.

J'ai une classe qui prend une chaîne et une police comme son constructeur, une liste dans ma classe d'impression que je set (printString):

public List<PrintString> ps = new List<PrintString>(); 

Je n'ai aucun problème peuplant la liste de ma forme:

ReceiptPrint receipt = new ReceiptPrint(); 
receipt.ps.Add(new PrintString(printHead,new Font("Arial", 20))); 
receipt.ps.Add(new PrintString(dateTime, new Font("Arial", 14))); 
receipt.Print(); 

L'endroit où je suis coincé est dans ma classe d'impression (ReceiptPrint) où j'essaie de parcourir la liste pour passer la chaîne et la police à la méthode DrawString.

foreach (PrintString printString in ps) 
{ 
    e.Graphics.DrawString(ps?????????? 
} 

Répondre

0

Créez une classe avec des membres pour tout ce qui est propre à un élément particulier, tel que le texte, la taille de la police et l'emplacement.

Ensuite, créez des instances de cette classe et ajoutez-les à une nouvelle liste <YourClassType>;

Enfin, parcourez la liste et dessinez les éléments.

+0

Je comprends ce que vous dites, mais je ne sais pas comment je passerais la liste à mon impression classe. – jchristian

+0

Vous devriez simplement pouvoir faire en sorte que votre fonction accepte List comme paramètre. – overslacked

+0

Comment puis-je obtenir la méthode DrawString pour accepter la liste en tant que paramètre? J'ai une liste générique générée dans ma classe d'impression qui accepte une chaîne et une police. Maintenant je ne sais pas comment le faire en boucle. – jchristian

1

Il a été question de faire passer la chaîne et la police que je mets dans ma classe printString:

foreach (PrintString printString in ps) 
     { 
      e.Graphics.DrawString(printString.Text, printString.Font, Brushes.Black, printArea, format); 
     } 
Questions connexes