如何使用VB.Net在Data Dynamics.ActiveReports 2.0中使用图形?

时间:2010-02-09 09:58:46

标签: vb.net activereports

我想在活动报告中的文本框背景上应用渐变颜色。为此,我使用图形并使用以下代码:

 Dim a As New System.Drawing.Drawing2D.LinearGradientBrush(New RectangleF(0, 0, Me.Width, Me.Height), color1, color2, mode)
        Dim g As Graphics = Me.CreateGraphics
        g.FillRectangle(a, New RectangleF(0, 0, Me.Width, Me.Height))
        g.Dispose()

它在表单中运行良好但在报表中无法通过Me.CreateGraphics获取Graphics的对象。请建议

1 个答案:

答案 0 :(得分:0)

您可以使用Picture控件在ActiveReports中完成此操作。只需将渐变图像添加到ActiveReports Picture控件,并将图片控件放在与文本框相同的位置。为了解释文本框可能会根据运行时的数据增加缩减(由于CanGrow和CanShrink属性),您应该在包含文本框和文本框的部分的格式事件中使用以下代码。图片控制:

public void Detail1_Format()
{
    this.gradientPicture.Height = this.txtCustomerID1.Height;   
}

仅供参考:您使用的CreateGraphics技术是一种Windows Forms特定的绘画方式。除了在Windows窗体中工作外,ActiveReports还必须在Windows窗体以外的环境中工作,所以不幸的是我们无法在ActiveReports中使用这种精确的技术。

您还可以使用DataDynamics.ActiveReports.Document.Page类以与在Graphics上绘制方式类似的方式绘制到ActiveReports页面上。不幸的是,将每个文本框映射到每个页面的相应位置有点棘手,这是绘制文本框上的渐变所需要的,所以我认为前一种解决方案是最好的。

我还建议ActiveReports产品管理团队考虑一项功能,以便在将来更好地实现此目的。它将在案例#142836下进行跟踪。

我希望这有用!