c# - why don't I get the DateTime value of the X Axis -
when run code every point find x-value 0.0
i dont know how fix it; tried convert pixels , value same result. graph contains price every date.
(int = 0; < a.count; i++)//making anual graph { annual.series["close"].points.addxy((datetime.parseexact(a[i].date, "yyyymmdd", null).tostring("yyyy/mm/dd")), a[i].close); } point? prevposition = null; private void annual_mousemove(object sender, mouseeventargs e) { { var pos = e.location; if (prevposition.hasvalue && pos == prevposition.value) return; tooltip1.removeall(); prevposition = pos; var results = annual.hittest(pos.x, pos.y, false, chartelementtype.datapoint); var results1 = candlestickchart.hittest(pos.x, pos.y, false, chartelementtype.datapoint); foreach (var result in results) { if (result.chartelementtype == chartelementtype.datapoint)// check if point on graph { var prop = result.object datapoint;// on result point if (prop != null) { var pointypixel = result.chartarea.axisy.valuetopixelposition(prop.yvalues[0]); // check if cursor close point (3 pixels around) if (math.abs(pos.y - pointypixel) < 3) { tooltip1.show("price=" + prop.yvalues[0].tostring("0.00")+'$', this.annual,pos.x, pos.y - 15); label3.text = prop.xvalue.tostring();<======== label4.text = prop.yvalues[0].tostring("0.00") + '$'; } } } }
the reason line:
annual.series["close"].points.addxy((datetime.parseexact(a[i].date, "yyyymmdd", null).tostring("yyyy/mm/dd")), a[i].close); the parseexact method returns datetime fine, re-format string again!
x-values contain double, either coming numbers or datetime values converted automatically via datetime.tooadate method. if add x-values strings set zero, because strings neither numbers nor datatimes.
this easy miss, automatic labels in fact set strings, looks fine.
but problems come try do x-values..like calculations, setting interval, formatting, displaying tooltips or customlabels etc etc..
to add x-values datetimes change line
annual.series["close"].points.addxy(datetime.parseexact(a[i].date, "yyyymmdd", null), a[i].close); and set format labels:
yourchartarea.axisx.labelstyle.format = "yyyy/mm/dd"; see here extended discussion!
Comments
Post a Comment