找回密码
 立即注册

QQ登录

只需一步,快速开始

pinebud

注册会员

6

主题

14

帖子

138

积分

注册会员

积分
138

微信认证勋章

pinebud
注册会员   /  发表于:2018-5-31 11:19  /   查看:3729  /  回复:6
新建一个空的winform项目测试,拖入两个flex chart
代码如下:

  1. public partial class Form1 : Form
  2.     {
  3.         public Form1()
  4.         {
  5.            
  6.             InitializeComponent();

  7.             LoadData();
  8.         }

  9.         public void LoadData()
  10.         {
  11.             List<DataItem> points = new List<DataItem>();
  12.             DateTime now = DateTime.Now;
  13.             DateTime begintime = now;
  14.             DateTime endtime = now;
  15.             var rand = new Random();
  16.             for (int i = 0; i < 1000; i++)
  17.             {
  18.                 endtime = now.AddSeconds(i);
  19.                 points.Add(new DataItem()
  20.                 {
  21.                     Date = endtime,
  22.                     Series1 = rand.NextDouble() * 10
  23.                 });
  24.             }
  25.             var chart = flexChart1;
  26.             chart.ChartType = ChartType.Line;
  27.             chart.BeginUpdate();
  28.             chart.DataSource = points.ToArray();
  29.             chart.Series.Clear();
  30.             chart.BindingX = "Date";
  31.             chart.Series.Add(new Series() { Name = "Series1", Binding = "Series1" });
  32.             chart.Series[0].Style.Stroke = Brushes.Red;
  33.             chart.Series[0].Style.StrokeWidth = 1;
  34.             chart.AxisX.Min = begintime.ToOADate();
  35.             chart.AxisX.Max = endtime.ToOADate();
  36.             chart.EndUpdate();

  37.             var RangeSelectChart = flexChart2;
  38.             RangeSelectChart.Legend.Position = Position.None;
  39.             RangeSelectChart.ChartType = ChartType.Line;
  40.             RangeSelectChart.Series.Clear();
  41.             RangeSelectChart.BindingX = "Date";
  42.             RangeSelectChart.Series.Add(new Series() { Name = "Series1", Binding = "Series1" });
  43.             RangeSelectChart.Series[0].Style.Stroke = Brushes.Red;
  44.             RangeSelectChart.Series[0].Style.StrokeWidth = 1;
  45.             RangeSelectChart.DataSource = points.ToArray();
  46.             RangeSelector XRangeSelector;
  47.             XRangeSelector = new RangeSelector(flexChart1);
  48.             XRangeSelector.LowerValue = begintime.ToOADate();
  49.             XRangeSelector.UpperValue = endtime.ToOADate();
  50.         }      

  51.         class DataItem
  52.         {
  53.             public double Series1 { get; set; }
  54.             public DateTime Date { get; set; }
  55.         }
  56.     }
复制代码

6 个回复

倒序浏览
pinebud
注册会员   /  发表于:2018-5-31 11:21:30
沙发

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
JeffryLI
葡萄城公司职员   /  发表于:2018-5-31 11:36:43
板凳

我验证下,有结果告知您。
请点击评分,对我5分评价,谢谢!

葡萄城控件服务团队
官方网站: https://www.grapecity.com.cn/developer
回复 使用道具 举报
pinebud
注册会员   /  发表于:2018-5-31 15:04:13
地板
JeffryLI 发表于 2018-5-31 11:36
我验证下,有结果告知您。

我尝试了软件安装带的sample code; WeatherChart这个例子里面,例子里面的额rangeselector chart能正常运行,我新增一个flexchart用来做range select就报错;如果复制原有的chart就正常。所以我猜测是chart的设置问题。但是我现在还没有找到是哪个地方的设置导致的问题
回复 使用道具 举报
JeffryLI
葡萄城公司职员   /  发表于:2018-5-31 15:58:46
5#
pinebud 发表于 2018-5-31 15:04
我尝试了软件安装带的sample code; WeatherChart这个例子里面,例子里面的额rangeselector chart能正常 ...

这个我们可以同时对比下,只要不是控件问题就好解决。找到后我发给您
请点击评分,对我5分评价,谢谢!

葡萄城控件服务团队
官方网站: https://www.grapecity.com.cn/developer
回复 使用道具 举报
pinebud
注册会员   /  发表于:2018-5-31 16:51:02
6#
JeffryLI 发表于 2018-5-31 15:58
这个我们可以同时对比下,只要不是控件问题就好解决。找到后我发给您

我测试了一天终于找到原因了!
建议在产品手册中增加说明。

首先,如果chart没有数据,绑定RangeSelector会出现这样的错误

其次,绑定RangeSelector必须在chart的Rendered事件中进行(我看了例子都是在render函数中),可能与RangeSelector的加载机制有关。

评分

参与人数 1金币 +500 收起 理由
JeffryLI + 500 很给力!

查看全部评分

回复 使用道具 举报
JeffryLI
葡萄城公司职员   /  发表于:2018-5-31 18:47:01
7#
厉害了
请点击评分,对我5分评价,谢谢!

葡萄城控件服务团队
官方网站: https://www.grapecity.com.cn/developer
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部