如何通过 TeeChart 实现具有多个同步图表的 .Net 控件



我想通过TeeChart实现一个.Net控件,如下所示:1.该控件包含多个图表,所有这些图表都共享comman垂直轴。如果缩放一个图表,则应同步缩放其他图表;2.每个图表包含多条霍里兹线,每条线对应于一个唯一的水平轴。

请查看 All FeaturesWelcome !AxesOpaque zones 的功能演示中的示例。功能演示是 TeeChart 安装附带的程序,包括组件支持的主要功能的示例。

如果您拥有的是多个TChart并且想要同步它们,则可以为其处理两个图表上的Scroll事件。即:

public Form1()
{
  InitializeComponent();
  CreateChart();
  InitializeChart();
}
Steema.TeeChart.TChart tChart1, tChart2;
private void CreateChart()
{
  tChart1 = new Steema.TeeChart.TChart();
  this.Controls.Add(tChart1);
  tChart2 = new Steema.TeeChart.TChart();
  this.Controls.Add(tChart2);
  tChart1.Dock = DockStyle.Left;
  tChart2.Dock = DockStyle.Right;
}
private void InitializeChart()
{
  tChart1.Aspect.View3D = false;
  tChart2.Aspect.View3D = false;
  Line line1 = new Line(tChart1.Chart);
  line1.FillSampleValues();
  Line line2 = new Line(tChart2.Chart);
  line2.DataSource = line1;
  tChart1.Scroll += new EventHandler(tChart1_Scroll);
  tChart2.Scroll += new EventHandler(tChart2_Scroll);
}
void tChart1_Scroll(object sender, EventArgs e)
{
  tChart2.Axes.Left.SetMinMax(tChart1.Axes.Left.Minimum, tChart1.Axes.Left.Maximum);
  tChart2.Axes.Bottom.SetMinMax(tChart1.Axes.Bottom.Minimum, tChart1.Axes.Bottom.Maximum);
}
void tChart2_Scroll(object sender, EventArgs e)
{
  tChart1.Axes.Left.SetMinMax(tChart2.Axes.Left.Minimum, tChart2.Axes.Left.Maximum);
  tChart1.Axes.Bottom.SetMinMax(tChart2.Axes.Bottom.Minimum, tChart2.Axes.Bottom.Maximum);
}

相关内容

  • 没有找到相关文章

最新更新