饼图切片单击

ebr*_*n99 3 c# data-visualization winforms pie-chart

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

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

我也是 using System.Windows.Forms.DataVisualization.Charting;

TaW*_*TaW 8

是的,这是正确的方法.

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

我会使用MouseClickbtw,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;
}
Run Code Online (Sandbox Code Playgroud)

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

在此输入图像描述