http://www.sufeinet.com/plugin.php?id=keke_group

苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 9050|回复: 5

[开发助手] MSCHart 控件 滚动条。

[复制链接]
发表于 2014-9-10 15:27:06 | 显示全部楼层 |阅读模式
1金钱
本帖最后由 ailamu 于 2014-9-10 15:45 编辑

各位大侠,我现在做MSChart控件实时曲线显示的程序,但是遇到一个问题,视图区域中的曲线一直的在压缩,我不知道怎么才能出现滚动条。
运行截图如下:
QQ截图20140910152510.png
QQ截图20140910154507.png
设置X轴最大值后,只显示最小值到最大值的数据,之后的就没有显示。

1

1


求帮忙。
部分代码如下:
初始化ChartAreaView
public ChartArea CreatChartArea(string name)
        {
            ChartArea cArea = new ChartArea();
            cArea.Name = name;
            cArea.InnerPlotPosition.Auto = true;

            cArea.AxisX.LabelStyle.Format = "HH:mm:ss";
            cArea.AxisX.ScrollBar.Enabled = true;
            cArea.AxisX.ScrollBar.BackColor = Color.White;
            cArea.AxisX.ScrollBar.LineColor = Color.Black;
            cArea.AxisX.ScrollBar.ButtonColor = Color.FromArgb(224, 224, 224);
            cArea.AxisX.ScrollBar.ButtonStyle = ScrollBarButtonStyles.SmallScroll;

           // cArea.AxisX.ScaleView.SizeType = DateTimeIntervalType.Minutes;
            //cArea.AxisX.ScaleView.Size = 10;
            //cArea.AxisX.ScrollBar.Axis.

            cArea.AxisX.ScrollBar.Size = 10;
            //cArea.AxisX.LabelStyle.IsStaggered = true;
            //cArea.AxisX.Interval = 5;
            //cArea.AxisX.MajorGrid.Interval = 1;
            cArea.AxisX.MajorGrid.IntervalType = DateTimeIntervalType.Seconds;
            cArea.AxisX.MajorGrid.LineWidth = 1;
            cArea.AxisX.MajorGrid.LineDashStyle = ChartDashStyle.Dot;

            cArea.AxisY.MajorGrid.LineDashStyle = ChartDashStyle.Dot;
            cArea.AxisY.LabelStyle.Format = "0.00";

            //cArea.AlignmentOrientation = AreaAlignmentOrientations.All;
            cArea.AlignmentStyle = AreaAlignmentStyles.Cursor;

            cArea.CursorX.AutoScroll = true;
            cArea.CursorX.IsUserEnabled = true;
            cArea.CursorX.Interval = 0.1;
            cArea.CursorX.IntervalType = DateTimeIntervalType.Milliseconds;

            cArea.CursorY.IsUserEnabled = true;
            cArea.CursorY.IsUserSelectionEnabled = false;

            cArea.AxisY.Interval = 20;
            cArea.AxisY.Minimum = 0;

            cArea.AxisX.Minimum = DateTime.Now.ToOADate();
            //cArea.AxisX.Maximum = DateTime.Now.AddMinutes(1).ToOADate();
            cArea.AxisX.ScaleView.SizeType = DateTimeIntervalType.Minutes;
            cArea.AxisX.ScaleView.Zoomable = false;
            cArea.AxisX.Enabled = AxisEnabled.Auto;
            //cArea.AxisX.IntervalAutoMode = IntervalAutoMode.VariableCount;
            cArea.AxisX.IsMarksNextToAxis = true;
            //cArea.AxisX.MaximumAutoSize = 60;
            //cArea.AxisX.

            //CustomLabel a = new CustomLabel();

            //a.FromPosition = DateTime.Now.ToOADate();

            //a.GridTicks = GridTickTypes.All;

            //a.Text = DateTime.Now.ToString();

            //a.ToPosition = DateTime.Now.AddMinutes(5).ToOADate();
            //cArea.AxisX.CustomLabels.Add(a);


            //cArea.AxisX.ScaleView
            return cArea;
        }





1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
发表于 2014-9-10 16:10:10 | 显示全部楼层
http://www.cnblogs.com/jiutianxi ... /02/01/2889183.html


WebFrom:

目前只能在chart外添加div:

<div style="width:100px;height:100px;overflow:auto">
<asp:Chart ...
</div>

WinFrom:

今天往MSCahrt图形的X轴添加滚动条,结果不显示,查找了资料终于解决,记录下来:

chart1.ChartAreas["ChartArea1"].AxisX.ScrollBar.IsPositionedInside= false;//设置滚动条是在外部显示

chart1.ChartAreas["ChartArea1"].AxisX.ScrollBar.Size = 20;//设置滚动条的宽度

chart1.ChartAreas["ChartArea1"].AxisX.ScrollBar.ButtonStyle = ScrollBarButtonStyles.SmallScroll;//滚动条只显示向前的按钮,主要是为了不显示取消显示的按钮

chart1.ChartAreas["ChartArea1"].AxisX.ScaleView.Size = 10;//设置图表可视区域数据点数,说白了一次可以看到多少个X轴区域

chart1.ChartAreas["ChartArea1"].AxisX.ScaleView.MinSize = 1;//设置滚动一次,移动几格区域

chart1.ChartAreas["ChartArea1"].AxisX.Interval=1;//设置X轴的间隔,设置它是为了看起来方便点,也就是要每个X轴的记录都显示出来

ChartView.ChartAreas["ChartArea1"].AxisX.Minimum = 1;//X轴起始点
ChartView.ChartAreas["ChartArea1"].AxisX.Maximum = 100;//X轴结束点,一般这个是应该在后台设置的,
//对于我而言,是用的第一列作为X轴,那么有多少行,就有多少个X轴的刻度,所以最大值应该就等于行数;

//该值设置大了,会在后边出现一推空白,设置小了,会出后边多出来的数据在图表中不显示,所以最好是在后台根据你的数据列来设置.

要实现显示滚动条,就不能设置成自动显示刻度,必须要有值才可以。

从上述设置后,变成是,X轴从0开始,到100结束;每次图表最多显示10个刻度,滚动条每移动一次,会移动一个刻度。
回复

使用道具 举报

发表于 2014-9-11 09:44:20 | 显示全部楼层
强烈支持楼主ing……
回复

使用道具 举报

 楼主| 发表于 2014-9-18 16:25:17 | 显示全部楼层
站长苏飞 发表于 2014-9-10 16:10
http://www.cnblogs.com/jiutianxingchen/archive/2013/02/01/2889183.html

感谢飞哥的热情帮助
回复

使用道具 举报

 楼主| 发表于 2014-9-18 16:25:40 | 显示全部楼层
ching126 发表于 2014-9-11 09:44
强烈支持楼主ing……

谢谢
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2024-4-29 04:11

© 2014-2021

快速回复 返回顶部 返回列表