using System; using System.Drawing; using DevExpress.XtraCharts;

namespace DevExpressUtilHelpV3

{

public static class ChartToolV3

{

/// <summary>

/// 创建Series

/// </summary>

/// <param name="chat">ChartControl</param>

/// <param name="seriesName">Series名字『诸如:理论电量』</param>

/// <param name="seriesType">seriesType『枚举』</param>

/// <param name="dataSource">数据源</param>

/// <param name="xBindName">ChartControl的X轴绑定</param>

/// <param name="yBindName">ChartControl的Y轴绑定</param>

public static void CreateSeries(this ChartControl chat, string seriesName, ViewType seriesType, object dataSource, string xBindName, string yBindName)

{

CreateSeries(chat, seriesName, seriesType, dataSource, xBindName, yBindName, null);

}

/// <summary>

/// 创建Series

/// </summary>

/// <param name="chat">ChartControl</param>

/// <param name="seriesName">Series名字『诸如:理论电量』</param>

/// <param name="seriesType">seriesType『枚举』</param>

/// <param name="dataSource">数据源</param>

/// <param name="xBindName">ChartControl的X轴绑定</param>

/// <param name="yBindName">ChartControl的Y轴绑定</param>

/// <param name="createSeriesRule">Series自定义『委托』</param>

public static void CreateSeries(this ChartControl chat, string seriesName, ViewType seriesType, object dataSource, string xBindName, string yBindName, Action<Series> createSeriesRule)

{

if (chat == null)

throw new ArgumentNullException("chat");

if (string.IsNullOrEmpty(seriesName))

throw new ArgumentNullException("seriesType");

if (string.IsNullOrEmpty(xBindName))

throw new ArgumentNullException("xBindName");

if (string.IsNullOrEmpty(yBindName))

throw new ArgumentNullException("yBindName");

Series _series = new Series(seriesName, seriesType);

_series.ArgumentScaleType = ScaleType.Qualitative;

_series.ArgumentDataMember = xBindName;

_series.ValueDataMembers[0] = yBindName;

_series.DataSource = dataSource;

if (createSeriesRule != null)

createSeriesRule(_series);

chat.Series.Add(_series);

}

}

} 代码示例:

public Form1()

{

InitializeComponent();

}

private void Form1_Load(object sender, EventArgs e)

{

DataTable _dt = CreateTestDB();

chartControl1.CreateSeries("理论功率", ViewType.Spline, _dt, "time", "Power");

chartControl1.CreateSeries("实际功率", ViewType.Spline, _dt, "time", "ActulPower");

}

/// <summary>

/// 准备数据源

/// </summary>

/// <returns>DataTable</returns>

private DataTable CreateTestDB()

{

DataTable _testData = new DataTable();

_testData.Columns.Add(new DataColumn("time", typeof(string)));

_testData.Columns.Add(new DataColumn("Power", typeof(decimal)));

_testData.Columns.Add(new DataColumn("ActulPower", typeof(decimal)));

Random _rm = new Random();

for (int i = 0; i < 24; i++)

{

DataRow _drNew = _testData.NewRow();

_drNew["time"] = string.Format("{0}点", i);

_drNew["Power"] = 250;

_drNew["ActulPower"] = _rm.Next(220, 245);

_testData.Rows.Add(_drNew);

}

return _testData;

}

DevExpress Util HelpV3的更多相关文章

  1. 在DevExpress程序中使用GridView直接录入数据的时候,增加列表选择的功能

    在我上篇随笔<在DevExpress程序中使用Winform分页控件直接录入数据并保存>中介绍了在GridView以及在其封装的分页控件上做数据的直接录入的处理,介绍情况下数据的保存和校验 ...

  2. DevExpress - 使用 GaugeControl 标尺组件制作抽奖程序 附源码

    前不久,公司举办了15周年庆,其中添加了一个抽奖环节,要从在读学员中随机抽取幸运学员,当然,这个任务就分到了我这里. 最后的效果如下,启动有个欢迎页面,数据是来自Excel的,点击开始则上面的学号及姓 ...

  3. 图解DevExpress RichEditControl富文本的使用,附源码及官方API

    9点半了,刚写到1.2.   该回家了,明天继续写完. 大家还需要什么操作,留言说一下,没有的我明天继续加. 好久没有玩DevExpress了,今天下载了一个玩玩,发现竟然更新到14.2.5了..我去 ...

  4. DevExpress学习系列(控件篇):GridControl的基本应用

    一般属性设置 不显示分组框:Gridview->Option View->Show Group Panel=false 单元格不可编辑:gridcontrol -->gridview ...

  5. java.lang.NoSuchMethodError: org.apache.tomcat.util.res.StringManager.getManager(Ljava/lang/Class;)Lorg/apache/tomcat/util/res/StringManager

    问题: 使用Springboot打包为war部署于Tomcat7中报错 java.lang.NoSuchMethodError: org.apache.tomcat.util.res.StringMa ...

  6. 【转】java.util.Arrays.asList 的用法

    DK 1.4对java.util.Arrays.asList的定义,函数参数是Object[].所以,在1.4中asList()并不支持基本类型的数组作参数. JDK 1.5中,java.util.A ...

  7. 在DevExpress程序中使用Winform分页控件直接录入数据并保存

    一般情况下,我们都倾向于使用一个组织比较好的独立界面来录入或者展示相关的数据,这样处理比较规范,也方便显示比较复杂的数据.不过在一些情况下,我们也可能需要直接在GridView表格上直接录入或者修改数 ...

  8. 在DevExpress程序中使用TeeList控件以及节点查询的处理

    在很多情况下,我们需要通过树列表进行数据的展示,如一些有层次关系的数据,通过有层级的展示,能够使用户更加直观查看和管理相关的数据.在一般Winform开发的情况下,可以使用微软的TreeView控件, ...

  9. 在DevExpress程序中使用内置的图标构建美观的界面元素

    在我们一般的程序中,为一般的界面元素添加一定的图标展示,有助于提升界面的整体的美观.结合排版布局,以及固定场景的图标,往往给用户非常好的直观感受:统一.美观.易理解.因此在一般的程序界面中,都尽量在略 ...

随机推荐

  1. JavaScript原型链与继承

    最近学习了<Javascript高级程序设计>面向对象部分,结合书中的例子总结一下原型链和继承部分的内容. 创建对象 在Js当中没有类这个概念,当我们想要创建具有相同属性的对象的时候,有如 ...

  2. Android学习总结——系统提示对话框(AlertDialog)

    new AlertDialog.Builder(MainActivity.this).setTitle("退出")//设置对话框标题 .setMessage("官人可是要 ...

  3. Oracle SQL函数之日期函数

    sysdate [功能]:返回当前日期. [参数]:没有参数,没有括号 [返回]:日期 SQL> SELECT SYSDATE FROM DUAL; SYSDATE ----------- // ...

  4. MySQL整数类型说明 int(11) vs int(20)

    整数类型后面跟的是显示的宽度.M指示最大显示宽度.最大有效显示宽度是255.显示宽度与存储大小或类型包含的值的范围无关. 实践出真知: mysql> create table test2 ( a ...

  5. ExtJS4.x动态加载js文件

    动态加载js文件是ext4.x的一个新特性,可以有效的减少浏览器的压力,提高渲染速度.如动态加载自定义组件 1.在js/extjs/ux目录下,建立自定义组件的js文件. 2.编写MyWindow.j ...

  6. Godaddy主机从购买到开通的详细图文教程(2013年)

    http://bbs.zhujiusa.com/thread-10-1-1.html Godaddy主机从购买到开通的详细图文教程(2013年最新) Godaddy是全球域名注册商中的NO.1,同时也 ...

  7. 定时排程刷新微信access-token

    微信公众号开发中最常遇到的就是调用接口时候需要有API的access-token(非网页授权的access-token),有了这个token之后,才可以发生模板消息等.这里的做法主要是用nodejs的 ...

  8. typedef和define的作用域

    typedef: 如果放在所有函数之外,它的作用域就是从它定义开始直到文件尾: 如果放在某个函数内,定义域就是从定义开始直到该函数结尾: #define: 不管是在某个函数内,还是在所有函数之外,作用 ...

  9. ORACLE行转列(行转1列,行转多列)

    在oracle 11g release 2 版本中新增的listagg函数,listagg是一个实现字符串聚合的oracle内建函数;listagg(column,'分隔符') within grou ...

  10. <转>科普CPU Cache line

    转载于http://coolshell.cn/articles/10249.html CPU cache一直是理解计算机体系架构的重要知识点,也是并发编程设计中的技术难点,而且相关参考资料如同过江之鲫 ...