编程语言
首页 > 编程语言> > c# – 饼图切片单击

c# – 饼图切片单击

作者:互联网

我试图点击我的饼图,我从Windows形式的工具箱中为C#吸毒,​​并显示该切片的详细信息.现在这是我点击的代码.我想知道这是正确的路线还是我应该走的路线.

private void chart1_Click(object sender, EventArgs e)
{
    HitTestResult results = chart1.HitTest((e as MouseEventArgs).X, (e as MouseEventArgs).Y);
}

我也在使用System.Windows.Forms.DataVisualization.Charting;

解决方法:

是的,这是正确的方法.

您现在可以测试DataPoint是否有效等.

我会使用MouseClick btw,默认情况下有MouseEventArgs.

您甚至可以编写MouseMove事件的代码并使用相同的hittest来控制光标以显示用户在数据点上.

这是一个例子:

private void chart1_MouseClick(object sender, MouseEventArgs e)
{
    HitTestResult hit = chart1.HitTest(e.X, e.Y, ChartElementType.DataPoint);

    if (hit.PointIndex >= 0 && hit.Series != null)
    {
        DataPoint dp = chart1.Series[0].Points[hit.PointIndex];
        label1.Text = "Value #" + hit.PointIndex + " = " + dp.XValue;
    }
    else label1.Text = "";
}

private void chart1_MouseMove(object sender, MouseEventArgs e)
{
    HitTestResult hit = chart1.HitTest(e.X, e.Y);
    var dp = hit.Object as DataPoint;
    Cursor = (dp is null) ? Cursors.Default : Cursors.Hand;
}

请注意,这两个事件使用不同的方式来测试命中..!

enter image description here

标签:c,winforms,data-visualization,pie-chart
来源: https://codeday.me/bug/20190722/1501645.html