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
A
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
DrawRectangle ne dispose pas d'un tel surcharge. Soit tout seul ou tout entier. –