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!

so: try add x-values numbers or dates, never strings!


Comments

Popular posts from this blog

routing - AngularJS State management ->load multiple states in one page -

python - GRASS parser() error -

Swift game error message -