这个示例展示了如何在工具提示中为每个系列点显示下层数据源中的自定义信息。
为了使此示例能正确工作,需执行下列操作。
- 启动 MS Visual Studio (2005、2008、或 2010)。
- 新建一个或打开一个现有的 Windows 窗体应用程序。
- 把 ChartControl 拖放到窗体上。
- 也把 ToolTipController 组件 (位于 DX.10.2: Components 工具箱标签页中) 添加到窗体中。
- 添加一个 条形系列 到图表中,然后把它绑定到 nwind.mdb 数据库的 Products 表 (请参阅 另一个指南 来学习如何完成此操作)。
- 把系列的 SeriesBase.ArgumentDataMember 属性设置为 ProductName,并把 SeriesBase.ValueDataMembers.Value 属性设置为 UnitPrice。
- 然后,接管 ChartControl.ObjectHotTracked 事件,如下面的代码所示的那样。
C# | 复制代码 |
---|---|
using System; using System.Data; using System.Windows.Forms; using DevExpress.XtraCharts; using DevExpress.Utils; // ... private void chartControl1_ObjectHotTracked(object sender, HotTrackEventArgs e) { SeriesPoint point = e.AdditionalObject as SeriesPoint; if (point != null) { DataRowView rowView = (DataRowView)point.Tag; string s = "Unit price = " + rowView["UnitPrice"].ToString() + "\r\nUnits in stock = " + rowView["UnitsInStock"].ToString() + "\r\nQuantity per unit = " + rowView["QuantityPerUnit"].ToString(); toolTipController1.ShowHint(s); } else toolTipController1.HideHint(); } |
Visual Basic | 复制代码 |
---|---|
Imports Microsoft.VisualBasic Imports System Imports System.Data Imports System.Windows.Forms Imports DevExpress.XtraCharts Imports DevExpress.Utils ' ... Private Sub chartControl1_ObjectHotTracked(ByVal sender As Object, ByVal e As HotTrackEventArgs) _ Handles chartControl1.ObjectHotTracked Dim point As SeriesPoint = TryCast(e.AdditionalObject, SeriesPoint) If Not point Is Nothing Then Dim rowView As DataRowView = CType(point.Tag, DataRowView) Dim s As String = "Unit price = " & rowView("UnitPrice").ToString() & Constants.vbCrLf & _ "Units in stock = " & rowView("UnitsInStock").ToString() & Constants.vbCrLf & _ "Quantity per unit = " & rowView("QuantityPerUnit").ToString() toolTipController1.ShowHint(s) Else toolTipController1.HideHint() End If End Sub |
在下面的插图中显示了代码的执行结果。
Show Me |
---|
在 DevExpress Code Central 数据库中可以找到完整的示例项目,网址是 http://www.devexpress.com/example=E126。 取决于目标平台类型 (ASP.NET、WinForms 等),可以在线运行本示例,或者下载自动可执行的示例。 |