Вы можете сделать это в ActiveReports, используя Picture Control. Просто добавьте изображение градиента в элемент управления рисунками ActiveReports и поместите элемент управления изображением в то же место, что и текстовое поле. Чтобы учесть тот факт, что текстовое поле может увеличивать наше сжатие на основе данных во время выполнения (из-за свойств CanGrow и CanShrink), вы должны использовать следующий код в событии форматирования раздела, содержащего элемент управления textbox & picture:
public void Detail1_Format()
{
this.gradientPicture.Height = this.txtCustomerID1.Height;
}
К вашему сведению: метод CreateGraphics, который вы использовали, представляет собой особый способ рисования в Windows Forms. В дополнение к работе в формах Windows ActiveReports должен работать в средах, отличных от Windows Forms, поэтому, к сожалению, мы не можем использовать этот точный метод с ActiveReports.
Вы также можете рисовать на странице ActiveReports, используя класс DataDynamics.ActiveReports.Document.Page, аналогично тому, как вы рисуете на графике. К сожалению, немного сложно сопоставить каждое текстовое поле с соответствующей позицией на каждой странице, что необходимо для рисования градиентов в текстовом поле, поэтому я думаю, что первое решение лучше.
Я также предложил группе управления продуктами ActiveReports рассмотреть функцию, позволяющую сделать этот способ лучше в будущем. Он будет отслеживаться по делу № 142836.
Надеюсь, это полезно!