所以我有一个像我使用C#,图表控件和范围栏制作的应用程序的甘特图,我想知道是否有人知道是否有办法让Axis标签进入链接。
我在网上看到了一些使用自定义事件来添加URL的东西,但是在ASP.NET中我正在使用win表单。
任何建议表示赞赏。
答案 0 :(得分:0)
您可以使用图表的HitTestResult
来确定MouseDown
事件处理程序中单击的元素。然后,您可以确定它是哪个标签,并打开相应URL的网页。图表示例项目中的一些示例代码:
/// <summary>
/// Mouse Down Event
/// </summary>
private void Chart1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
{
// Call Hit Test Method
HitTestResult result = Chart1.HitTest( e.X, e.Y );
if( result.ChartElementType == ChartElementType.AxisLabels && result.Axis == Chart1.ChartAreas["Default"].AxisY )
{
StripLine stripLine = new StripLine();
stripLine.IntervalOffset = ((CustomLabel) result.Object).FromPosition;
stripLine.Interval = 200;
stripLine.BackColor = Color.FromArgb(128, 255,255, 255);
stripLine.StripWidth = ((CustomLabel) result.Object).ToPosition - ((CustomLabel) result.Object).FromPosition;
Chart1.ChartAreas["Default"].AxisY.StripLines.Add( stripLine );
}
}
在示例中,他们创建了一些CustomLabel
个对象:
// Set Y axis custom labels
axisY.CustomLabels.Add(0, 30,"Low");
axisY.CustomLabels.Add(30, 70, "Medium");
axisY.CustomLabels.Add(70,100,"High");
不确定它是否适用于默认标签,或者您是否需要自定义标签。无论哪种方式,您可能希望修改字体以使其看起来像链接(例如,蓝色和下划线),并可能更改MouseDown
处理程序中的字体(例如,紫色)。您还可以使用HitTestResult
处理程序中的MouseMove
来更改超过其中一个虚假链接标签时的光标。