Печать сетки значений с чередующимися цветами строк в C#

Следующий код показывает, как программа печатает свою сетку. Полный код не слишком сложный, но он длинный, поэтому здесь он разбит на несколько методов.

Этот код создает массивы для хранения заголовков сетки и данных тела. Затем он вызывает MakeSampleData для инициализации этих массивов. Этот метод прост, поэтому он не показан здесь.

Далее программа создает шрифты, используемые при рисовании заголовка и данных сетки. Он вызывает FindColumnSizes, чтобы найти необходимые размеры столбцов для отображения данных.

Затем код вызывает FindColumnAlignments, чтобы определить, как столбцы должны быть выровнены. В этом примере выравниваются int, float, double и десятичные данные справа и все остальные значения слева , Вы можете настроить этот код, если хотите. Вы также можете добавить форматирование по умолчанию (например, форматировать десятичные значения с двумя цифрами после десятичной точки).

Далее программа добавляет ширину столбцов, чтобы получить общую ширину сетки. Наконец, программа вызывает PrintGrid для рисования сетки.

В остальной части этого сообщения описываются методы, вызываемые этим обработчиком событий, для выполнения всей более сложной работы. Следующий код показывает метод FindColumnSizes и вспомогательный метод CheckColWidths, который он использует.

Метод FindColumnSizes вызывает CheckColWidths для вычисления ширины столбцов для заголовков сетки. Затем он перебирает строки данных, вызывая CheckColWidths для проверки ширины для каждой строки данных. Он заканчивается добавлением поля в каждый столбец.

Метод CheckColWidths обрабатывает значения в массиве (либо массив заголовков, либо ряд данных). Для каждого значения используется MeasureString, чтобы увидеть, насколько велика величина при печати, и при необходимости обновляет соответствующую ширину столбца.

Метод FindColumnAlignments, показанный в следующем коде, строит массив значений StringAlignment, чтобы указать, как выравнивать каждый столбец. Предполагается, что каждый столбец содержит только один вид данных: int, string и т. д.

Метод FindColumnAlignments обрабатывает значения в первой строке данных, использует GetType, чтобы узнать, какой тип данных имеет каждое значение, и соответственно устанавливает выравнивание. р>

Следующий PringGrid метод генерирует распечатку.

Метод PrintGrid начинается с заполнения прямоугольника за областью заголовка. Затем он перебирает строки заголовков, рисуя их. Он использует массив выравниваний для надлежащего выравнивания заголовков. (Вы можете изменить это, чтобы выровнять по левому краю все заголовки, даже если их столбцы содержат числовые данные, если хотите.)

Далее код проходит через строки данных. Для каждой строки код заполняет фон строки LightGreen или LightBlue. Затем он перебирает значения строки, печатая каждый, выровненный соответствующим образом.

Источник: http://csharphelper.com/blog/2015/05/print-a-grid-of-values-with-alternating-row-colors-in-c/

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)

Add a Comment

Ваш e-mail не будет опубликован. Обязательные поля помечены *