Как читать X и Y координаты серии ошибок в Teechart .net - PullRequest
0 голосов
/ 13 марта 2012

enter image description here

Как прочитать y координаты ряда ошибок в teechart?Я хочу, чтобы верхняя и нижняя координаты оси Y при наведении на нее курсора.

Ответы [ 2 ]

2 голосов
/ 14 марта 2012

Вам нужно использовать событие мыши TeeChart (например, OnMouseMove) и метод Clicked для серии, чтобы узнать, какая точка находится под мышью, и получить соответствующие значения, как в этом примере:

  public partial class Form1 : Form
  {
    public Form1()
    {
      InitializeComponent();
      InitializeChart();
    }

    private void InitializeChart()
    {
      tChart1.Aspect.View3D = false;
      tChart1.Series.Add(new Steema.TeeChart.Styles.Error()).FillSampleValues();
      tChart1.MouseMove += new MouseEventHandler(tChart1_MouseMove);
    }

    void tChart1_MouseMove(object sender, MouseEventArgs e)
    {
      Steema.TeeChart.Styles.Error error1 = (Steema.TeeChart.Styles.Error)tChart1[0];

      int index = error1.Clicked(e.X, e.Y);
      string tmp = "";

      if (index != -1)
      {
        double y = error1.YValues[index];
        double error = error1.ErrorValues[index];
        double top = y + error;
        double bottom = y - error;
        tmp = top.ToString("#.##") + " - " + bottom.ToString("#.##");
      }
      else
      {
        tmp = "";
      }

      this.Text = tmp;
    }
  }

Если выиспользуйте CursorTool, есть аргументы e.XValue и e.YValue, которые дают вам значения осей CursorTool и ex и ey, которые эквивалентны аргументам MouseMove eX и eY, так что вы можете сделать то же самое, что и с этим событием, простой пример:

public Form1()
{
  InitializeComponent();
  InitializeChart();
}

private void InitializeChart()
{
  tChart1.Aspect.View3D = false;
  tChart1.Series.Add(new Steema.TeeChart.Styles.Error()).FillSampleValues();
  //tChart1.MouseMove += new MouseEventHandler(tChart1_MouseMove);

  Steema.TeeChart.Tools.CursorTool cursor1 = new Steema.TeeChart.Tools.CursorTool(tChart1.Chart);
  cursor1.Series = tChart1[0];
  cursor1.FollowMouse = true;
  cursor1.Change += new Steema.TeeChart.Tools.CursorChangeEventHandler(cursor1_Change);
}

void cursor1_Change(object sender, Steema.TeeChart.Tools.CursorChangeEventArgs e)
{      
  Steema.TeeChart.Styles.Error error1 = (Steema.TeeChart.Styles.Error)tChart1[0];

  int index = error1.Clicked(e.x, e.y);
  string tmp = "";

  if (index != -1)
  {
    double y = error1.YValues[index];
    double error = error1.ErrorValues[index];
    double top = y + error;
    double bottom = y - error;
    tmp = "Error top: " + top.ToString("#.##") + 
          " Error bottom: " + bottom.ToString("#.##") +
          " Cursor pos.: " + e.XValue.ToString("#.##") + "/" + e.YValue.ToString("#.##");
  }
  else
  {
    tmp = "";
  }

  this.Text = tmp;
}
0 голосов
/ 13 марта 2012

Я не знаком с teechart, но я почти уверен, что есть событие cursor.move, если вы не можете его создать. Затем измените это событие, чтобы перехватить курсор

CursorMove(object sender, args e)
{

   this.lowerTextBox.value = cursor.postion;

}
...