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

本文关键字:控件 标签 | 更新日期: 2023-09-27 18:08:16

所以我有一个像甘特图这样的应用程序,我使用c#,图表控件和范围条,我想知道是否有人知道是否有一种方法可以使轴标签进入链接。

我在网上看到过一些使用自定义事件添加URL的事情,但那是在ASP中。. NET和我正在使用win的形式。

任何建议都是感激的。

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

您可以使用图表的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处理程序中的字体(例如,紫色)。您还可以在MouseMove处理程序中使用HitTestResult来在经过这些假链接标签之一时更改光标。