使轴标签可在图表控件上单击

时间:2014-06-11 18:25:21

标签: c# winforms charts user-controls

所以我有一个像我使用C#,图表控件和范围栏制作的应用程序的甘特图,我想知道是否有人知道是否有办法让Axis标签进入链接。

我在网上看到了一些使用自定义事件来添加URL的东西,但是在ASP.NET中我正在使用win表单。

任何建议表示赞赏。

1 个答案:

答案 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来更改超过其中一个虚假链接标签时的光标。