C# 带状线(图表)绘图通过单击图表
本文关键字:单击 绘图 带状线 图表 | 更新日期: 2023-09-27 18:17:38
community,
这是我在这里的第一个问题。 对于我遇到的所有其他问题,这边往往有一个答案。 为此我没有找到。 这是我的问题:
我有一个图表,我想在图表上单击鼠标时添加一个垂直星线。 到目前为止,我使用该代码:
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";
这段代码在我单击图表的每个点都会生成一条带状线,但我只想要一行。 因此,如果 ther 仍然是一条条带线,它应该被另一个位置的新条形线替换。
如果你能帮我,那就好了。 如果你没有得到我的问题请求问。
谢谢
一个有效的解决方案是:
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;
}
}
}
您可以使用
下面的代码删除所有带状线;
while (chartSettlingCurve.ChartAreas[0].AxisX.StripLines.Count > 0)
{
chartSettlingCurve.ChartAreas[0].AxisX.StripLines.Remove(hartSettlingCurve.ChartAreas[0].AxisX.StripLines.Last());
}
然后您可以添加一些代码。