【发布时间】:2013-06-10 14:32:55
【问题描述】:
社区,
这是我在这里的第一个问题。对于我遇到的所有其他问题,这方面通常都有答案。为此,我没有找到。这是我的问题:
我有一个图表,我想在图表上单击鼠标时添加一条垂直星线。到目前为止,我正在使用该代码:
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";
这段代码在我点击图表的每一点都会生成一条带状线,但我只想要一条线。所以如果它仍然是一条带状线,它会被另一个位置的新线替换。
如果你能帮助我会很好。如果你不明白我的问题,请询问。
谢谢
【问题讨论】:
-
如果你重用 stripLineEnd 并且只设置它的 IntervalOffset OnClick 怎么办?或者您是否必须将 StripLine 添加到图表的某个地方?如果是,请在添加新的之前删除所有 StirpLines。
-
嗨,谢谢您的回答,问题是最后我想要两条带状线(第一个称为“stripLineStart”,第二个称为“stripLineEnd”)但用户应该有可能改变两个都。因此,例如,如果用户对“stiplineStart”的位置不满意,他可以更改它,但“stiplineEnd”不应通过striplineStart 的新定位来更改。如果它对你有帮助,我可以尝试创建一些图片。谢谢
-
那么记住两条带状线并删除/添加新的或编辑你想要的带状线的intervalOffset。您应该说明您使用哪个图表控件,并至少添加您的点击事件处理程序方法的所有代码。
-
我尝试使用以下方法擦除“striplineStart”:foreach (var element in chartSettlingCurve.ChartAreas[0].AxisX.StripLines) { MessageBox.Show(element.Tag.ToString()); if (element.Tag == "start") { element.Dispose(); } } 但这会导致运行时错误。如何安全地删除带状线?谢谢