2010-09-30 3 views
0

Я хочу нарисовать таблицу в своем выходе для печати, используя графический объект System.Drawing.Printing. Я пытаюсь использовать DrawRectangle для рисования своих ячеек таблицы. Это требует рисования нескольких прямоугольников подряд. Это должно быть довольно легко, не так ли? Ну, кажется, что DrawRectangle четыре параметра: x, y, width и height. Однако x и y - целые числа, а ширина и высота - синглы. Мои прямоугольники перекрываются, потому что следующая ячейка в строке не может основывать свою позицию по ширине предыдущего прямоугольника. Другими словами, положение и ширина x являются разными типами данных и не используют один и тот же масштаб. Как я могу рассчитать положение x следующей ячейки на основе ширины предыдущей ячейки?VB.NET DrawRectangle для таблицы

+0

DrawRectangle не имеет такого перегрузки. Либо все Single, либо все Integer. –

ответ

1

Я не вижу каких-либо перегрузок для DrawRectangle, которые содержат различные типы данных:

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

Различные ширины не имеет значения, вы просто добавить ширину текущего прямоугольника X и нарисуйте следующий прямоугольник в этом положении. (Если прямоугольники в различных единицах измерения, то вы должны предоставить более подробную информацию в вашем посте Кто-то может быть в состоянии помочь вам конвертировать между единицами.).

Некоторые 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 
Смежные вопросы