最近需要实现一个效果,那就是在chart里,加载多条数据,每条数据自定义名字(就是数据的实际列与名字不要一样),然后多条数据,需要加入游标显示X轴数据,以及磁性附近的数据,原chart虽然可以勉强实现这些功能,但是不知道为啥,超级卡。放弃了,看了看第三方控件,发现dotnetbar里的chart非常棒,看了Demo也是很流畅,也很美观但是,发现一个问题,再c#自带的chart里,X轴是可以用字符串的,但是,再dotnetbar 里的chart,一用字符串,就给我报错                    SeriesPoint seriesPointXY = new SeriesPoint();
                    seriesPointXY.ValueX = timeX.ToString();   //就是这里,timeX是 int类型就没问题,一旦我给设置成string(当下只是做个例子做实验用的)就不行了,就开始报错 - $exception {"MinValue ScaleType must match Axis ScaleType"} System.Exception
                    seriesPointXY.ValueY = new object[] { ((object)(rndNum(100))) };
                    emtList[i].pointList.Add(seriesPointXY);
                    if (this.fullCheck.Checked == true)
                    {
                        if (emtList[i].isShowAll == false)
                        {
                            emtList[i].isShowAll = true;
                            emtList[i].chartSeries.SeriesPoints.Clear();
                            emtList[i].chartSeries.SeriesPoints.AddRange(emtList[i].pointList);
                        }
                        else
                        {
                            emtList[i].chartSeries.SeriesPoints.Add(seriesPointXY);
                        }
                    }真的是一脸懵逼呀= =,哎!
谁对这个控件比较熟,教教我呗。。网上百度的案例特别少,就算有,也是数字的。我看他原生应该支持多种格式的吧。默认是Object,不知道为啥,就不支持非Int的所有格式呢。。我想,肯定是我的操作哪里不对
另外一个问题就是,为毛我Y轴的格式变成float之后,左侧的刻度显示,就变得很诡异,比如原先的刻度是0 1 2 3 4...,后就变成了1.00021000000,2.0000xxxxxxxx类似这种显示,很占地方。。也很脑残。。那个刻度能否手动,比如我设定10个档,每个档中间可以通过游标看具体小数点值,而刻度间隔为1,就0 1 2 3 4 5 6 7 8 9显示即可。大神们,尤其是dotnetbar的大神们过来看看哟!

解决方案 »

  1.   

    额,还是靠我自己搞定了 = =,不过搞定字符串问题,又出现新的问题,X轴显示多排,导致无法查看
    并且,Y轴,每次创建一条线,左侧就会多一个刻度表,搞到最后N个刻度表,很烦,我只需要1个刻度表,然后N个标签即可,每个标签分别是不同颜色的线就行