2010-09-30 10 views
0

Je souhaite dessiner une table dans ma sortie d'impression à l'aide de l'objet Graphics de System.Drawing.Printing. J'essaie d'utiliser le DrawRectangle pour dessiner les cellules de mon tableau. Cela nécessite de dessiner plusieurs rectangles d'affilée. Ça devrait être assez facile, non? Eh bien, il semble que les quatre paramètres de DrawRectangle sont x, y, width et height. Cependant x et y sont des entiers alors que width et height sont simples. Mes rectangles se chevauchent car la cellule suivante d'une rangée ne peut pas baser sa position x sur la largeur du rectangle précédent. En d'autres termes, la position x et la largeur sont des types de données différents et n'utilisent pas la même échelle. Comment puis-je calculer la position x de la cellule suivante en fonction de la largeur de la cellule précédente?VB.NET DrawRectangle pour une table

+0

DrawRectangle ne dispose pas d'un tel surcharge. Soit tout seul ou tout entier. –

Répondre

1

Je ne vois pas de surcharge pour DrawRectangle qui contiennent différents types de données:

http://msdn.microsoft.com/en-us/library/fxtkbx2d.aspx

Différentes largeurs ne doivent pas d'importance, vous ajoutez simplement la largeur du rectangle courant X et dessine le rectangle suivant à cette position. (Si vos rectangles sont dans des unités différentes, vous devez fournir plus d'informations dans votre message Quelqu'un peut être en mesure de vous aider à convertir entre les unités..)

Certains psuedocode:

current = new Rectangle(0, 0, 100, 50) 
while (current.x + current.width) < page_width 
    DrawRectangle(Pens.Black, current.x, current.y, current.width, current.height) 
    current.x += current.width 
    current.width = width_of_next_rectangle 
end while