1

我想创建一个图表,我正在使用 Visual Studio 2010 中工具箱中的图表。这是我第一次尝试这样做,到目前为止,我已经学习了图表的基础知识,例如如何创建数据点并添加它们到系列以获取图表。我想知道的是,如果可以使数据点对用户可见(如点图中的点),并且用户能够单击数据点并获得特定结果。我在想的是,既然我正在创建数据点,是否有一个选项可以让它“可点击”,或者我是否必须为每个数据点创建单独的鼠标点击事件。请原谅我的无知,但我对此并不陌生。我在哪里可以找到可以帮助我创建图表的指南。到目前为止,这是我的代码的一部分:

chart1.Series[0].IsVisibleInLegend = false;
chart1.Series[0].ChartType = SeriesChartType.FastLine;

DateTime sday = Convert.ToDateTime(earnings1.dataGridView1[0, 0].Value.ToString());
chart1.Series[0].XValueType = ChartValueType.String;
int i = 0;
        foreach (DataGridViewRow dgvr in earnings1.dataGridView1.Rows)
        {
            decimal testing = Convert.ToDecimal(earnings1.dataGridView1[1, i].Value);
            testing = decimal.Truncate(testing);

            var point = new DataPoint(i+1, Convert.ToDouble(testing));

            point.Label = testing.ToString();
            point.Font = new Font("Century Gothic", 8, FontStyle.Bold);
            chart1.Series[0].Points.Add(point);
            chart1.Series[0].Points[i].AxisLabel = sday.ToString("dd/MM/yyyy");
            sday = sday.AddDays(1);
            i++;
          }

我正在做的是我有一个带有 2 列的 datagridview。一列带有日期,另一列带有十进制数。我创建了一个图表,其中 x 轴上的日期(自定义标记,因为日期来自 mysql 数据库,格式为 yyyy:mm:dd,我将其转换为 dd/MM/yyyy)和 y 轴上的值。我每天都用它的值创建一个数据点 a 并将它们绘制在图表上。我现在如何单击这些点,例如,当我单击 2012 年 5 月 24 日的值以执行诸如在该特定日期显示数据库中的一些其他信息之类的操作时。提前感谢您的支持,任何帮助将不胜感激。真诚的乔治乔治欧

4

2 回答 2

0

您不能在数据点上添加点击事件。您可以做的是在数据点上添加注释并在注释上使用 is selected 事件处理程序。非常好,因为您可以设置它们的属性,例如字体、大小、边框类型、颜色等。

于 2012-06-12T04:49:23.760 回答
0

代码从 Microsoft 站点复制并适用于 c# 2017

private void chtSales_MouseClick(object sender, MouseEventArgs e)
{
   var r = chtSales.HitTest(e.X, e.Y);
   if(r.ChartElementType == ChartElementType.DataPoint)
   {
       int index = r.PointIndex;
        MessageBox.Show(index.ToString());
    }

}

index 返回一个介于 0 和数据点总数 - 1 之间的整数。

于 2020-01-23T23:02:50.543 回答