VB.NET DrawRectangle для таблицы - PullRequest
       19

VB.NET DrawRectangle для таблицы

0 голосов
/ 30 сентября 2010

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

1 Ответ

1 голос
/ 30 сентября 2010

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

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

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

Какой-то псевдокод:

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
...