0

社区,

这是我在这里的第一个问题。对于我遇到的所有其他问题,这方面通常都有答案。为此,我没有找到。这是我的问题:

我有一个图表,我想在我在图表上单击鼠标的位置添加一条垂直星线。到目前为止,我正在使用该代码:

chartSettlingCurve.ChartAreas[0].CursorX.SetCursorPixelPosition(new Point(e.X, e.Y), true);
double pX = chartSettlingCurve.ChartAreas[0].CursorX.Position; //X Axis coordinate Mouse
            DataPoint dataPoint = chartSettlingCurve.Series[0].Points.FindByValue(nearestPreceedingValue(nearestPreceedingValue(pX)), "X");
            labelTab3Test.Text = Convert.ToString(dataPoint);

            DataPoint maxValuePoint = chartSettlingCurve.Series[0].Points.FindMaxByValue();

            StripLine stripLineEnd = new StripLine();
            stripLineEnd.BorderColor = Color.Blue;
            stripLineEnd.IntervalOffset = dataPoint.XValue;
            stripLineEnd.Text = "End";

这段代码在我点击图表的每一点都会生成一条带状线,但我只想要一条线。因此,如果仍然是一条带状线,则将其 shopud 替换为另一个位置的新线。

如果你能帮助我,那就太好了。如果你不明白我的问题,请询问。

谢谢

4

2 回答 2

1

一个可行的解决方案是:

            for (int j = 0; j < chartSettlingCurve.ChartAreas[0].AxisX.StripLines.Count; j++)
            {
                if (chartSettlingCurve.ChartAreas[0].AxisX.StripLines[j].Tag.ToString() == "end")
                {
                    chartSettlingCurve.ChartAreas[0].AxisX.StripLines.RemoveAt(j);
                    j--;
                }
            }

或作为替代方案:

            bool loop = true;
            while (loop)
            {
                loop = false;
                foreach (var element in chartSettlingCurve.ChartAreas[0].AxisX.StripLines)
                {
                    if (element.Tag.ToString() == "end")
                    {
                        chartSettlingCurve.ChartAreas[0].AxisX.StripLines.Remove(element);
                        loop = true;
                        break;
                    }
                }
            }
于 2013-06-11T13:53:27.843 回答
0

您可以使用下面的代码删除所有带状线;

        while (chartSettlingCurve.ChartAreas[0].AxisX.StripLines.Count > 0)
        {
            chartSettlingCurve.ChartAreas[0].AxisX.StripLines.Remove(hartSettlingCurve.ChartAreas[0].AxisX.StripLines.Last());   
        }

比你可以添加一些代码。

于 2020-06-17T12:36:32.880 回答