chart 控件主要有 Titles 标题集合  Chart Area图形显示区域 Series图表集合 Legends图列的集合

(1)  常用事件:

1. Series1.Points.DataBind()绑定数据点集合,如果要在一个MSChart控件的一个绘图区(ChartArea)内添加多个不同数据源的图表,就用这个主动绑定数据集合的方法。可以将表中指定字段的值绑定到指定的坐标轴上。

2. MSChart1.DataBind()给整个MSChart绑定一个数据源,该MSChart中的图表全部可以使用该数据源作为统计来源

(2)MSChart的元素组成,最常用的属性包括:

ChartAreas:增加多个绘图区域,每个绘图区域包含独立的图表组、数据源,用于多个图表类型在一个绘图区不兼容时。

AlignmentOrientation:图表区对齐方向,定义两个绘图区域间的对齐方式。

AlignmentStyle:图表区对齐类型,定义图表间用以对其的元素。

AlignWithChartArea:参照对齐的绘图区名称。

InnerPlotPosition:图表在绘图区内的位置属性。

Auto:是否自动对齐。

Height:图表在绘图区内的高度(百分比,取值在0-100)

Width:图表在绘图区内的宽度(百分比,取值在0-100)

X,Y:图表在绘图区内左上角坐标

Position:绘图区位置属性,同InnerPlotPosition。

Name:绘图区名称。

Axis:坐标轴集合

Title:坐标轴标题

TitleAlignment:坐标轴标题对齐方式

Interval:轴刻度间隔大小

IntervalOffset:轴刻度偏移量大小

MinorGrid:次要辅助线

MinorTickMark:次要刻度线

MajorGrid:主要辅助线

MajorTickMark:主要刻度线

DataSourceID:MSChart的数据源。

Legends:图例说明。

Palette:图表外观定义。

(3)Series:最重要的属性,图表集合,就是最终看到的饼图、柱状图、线图、点图等构成的集合;可以将多种相互兼容的类型放在一个绘图区域内,形成复合图。

IsValueShownAsLabel:是否显示数据点标签,如果为true,在图表中显示每一个数据值

Label:数据点标签文本

LabelFormat:数据点标签文本格式

LabelAngle:标签字体角度

Name:图表名称

Points:数据点集合

XValueType:横坐标轴类型

YValueType:纵坐标轴类型

XValueMember:横坐标绑定的数据源(如果数据源为Table,则填写横坐标要显示的字段名称)

YValueMembers:纵坐标绑定的数据源(如果数据源为Table,则填写纵坐标要显示的字段名称,纵坐标可以有两个)

ChartArea:图表所属的绘图区域名称

ChartType:图表类型(柱形、饼形、线形、点形等)

Legend:图表使用的图例名称

Titles:标题集合。

width:MSChart的宽度。

height:MSChart的高度。

4.例子

Public Class Form1

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim dt As DataTable
dt = CreateDataTable() SetMSChartStyle()
ConvertChart(dt) 'databind
Chart1.DataBind()
End Sub Private Function CreateDataTable() As DataTable
Dim dt As New DataTable
'Add three columns to the DataTable
dt.Columns.Add("Date") 'X
dt.Columns.Add("Series1") 'data1
dt.Columns.Add("Series2") 'data2
dt.Columns.Add("Series3") 'data1
dt.Columns.Add("Series4") 'data2
dt.Columns.Add("Series5") 'data1
dt.Columns.Add("Series6") 'data2 Dim dr As DataRow
'Add rows to the table which contains some random data for demonstration
Dim rnd As New Random
Dim i As Double
For i = To Step 0.2
dr = dt.NewRow()
dr("Date") = i
dr("Series1") = + rnd.Next(, )
dr("Series2") = + rnd.Next(, )
dr("Series3") = + rnd.Next(, )
dr("Series4") = + rnd.Next(, )
dr("Series5") = + rnd.Next(, )
dr("Series6") = + rnd.Next(, )
dt.Rows.Add(dr)
Next CreateDataTable = dt
End Function Private Sub ConvertChart(dt As DataTable)
For Each dr As DataRow In dt.Rows
Dim s As Double = dr("Date")
Chart1.Series("Series1").Points.AddXY(s, dr("Series1"))
Chart1.Series("Series2").Points.AddXY(s, dr("Series2"))
Chart1.Series("Series3").Points.AddXY(s, dr("Series3"))
Chart1.Series("Series4").Points.AddXY(s, dr("Series4"))
Chart1.Series("Series5").Points.AddXY(s, dr("Series5"))
Chart1.Series("Series6").Points.AddXY(s, dr("Series6"))
Next
End Sub '/ <summary>
'/ 设置mschart样式
'/ </summary>
Private Sub SetMSChartStyle()
' 坐标轴设置
Chart1.ChartAreas().AxisY.IsMarginVisible = False
Chart1.ChartAreas().AxisY.LabelStyle.Enabled = False
Chart1.ChartAreas().AxisX.IsMarginVisible = False
Chart1.ChartAreas().AxisX.LabelStyle.Enabled = False '设置当前X轴Label自动设置格式 = 关闭
Chart1.ChartAreas().AxisX.LabelAutoFitStyle = DataVisualization.Charting.LabelAutoFitStyles.None ''设置当前X轴Label的双行显示格式= 关闭,这个会影响到Y轴线条的显示
Chart1.ChartAreas().AxisX.LabelStyle.IsStaggered = False
''.设置当前X轴Label的显示间隔周期=1 (1个项目) (=2的意思: 间隔2个项目显示...以此类推)
'Chart1.ChartAreas(0).AxisX.LabelStyle.Interval = 1
'X 轴坐标最大最小值
Chart1.ChartAreas().AxisX.Minimum =
Chart1.ChartAreas().AxisX.Maximum = 'X 轴坐标最大最小值
Chart1.ChartAreas().AxisY.Minimum =
Chart1.ChartAreas().AxisY.Maximum = ' 坐标轴刻度线不延长出来设置
Chart1.ChartAreas().AxisX.MajorTickMark.Enabled = False
Chart1.ChartAreas().AxisY.MajorTickMark.Enabled = False 'X 次要辅助线设置
Chart1.ChartAreas().AxisX.MinorGrid.Enabled = True
'X 次要辅助线间距
Chart1.ChartAreas().AxisX.MinorGrid.Interval = 0.5
'X 次要辅助线颜色
Chart1.ChartAreas().AxisX.MinorGrid.LineColor = Color.LightGray
Chart1.ChartAreas().AxisX.MinorGrid.LineDashStyle = DataVisualization.Charting.ChartDashStyle.Dash 'Y 次要辅助线设置
Chart1.ChartAreas().AxisY.MinorGrid.Enabled = True
'Y 次要辅助线间距
Chart1.ChartAreas().AxisY.MinorGrid.Interval =
'Y 次要辅助线颜色
Chart1.ChartAreas().AxisY.MinorGrid.LineColor = Color.LightGray
Chart1.ChartAreas().AxisY.MinorGrid.LineDashStyle = DataVisualization.Charting.ChartDashStyle.Dash 'X 主要辅助线设置
Chart1.ChartAreas().AxisX.MajorGrid.Enabled = True
'X 主要辅助线间距
Chart1.ChartAreas().AxisX.MajorGrid.Interval =
'X 主要辅助线颜色
Chart1.ChartAreas().AxisX.MajorGrid.LineColor = Color.Black
Chart1.ChartAreas().AxisX.MajorGrid.LineDashStyle = DataVisualization.Charting.ChartDashStyle.Solid 'Y 主要辅助线设置
Chart1.ChartAreas().AxisY.MajorGrid.Enabled = True
'Y 主要辅助线间距
Chart1.ChartAreas().AxisY.MajorGrid.Interval =
'Chart1.ChartAreas(0).AxisY.MajorGrid.IntervalOffset = 1000
'Y 主要辅助线颜色
Chart1.ChartAreas().AxisY.MajorGrid.LineColor = System.Drawing.Color.FromArgb(CType(CType(, Byte), Integer), CType(CType(, Byte), Integer), CType(CType(, Byte), Integer))
Chart1.ChartAreas().AxisY.MajorGrid.LineDashStyle = DataVisualization.Charting.ChartDashStyle.Solid '坐标主要辅助线刻度间距
Chart1.ChartAreas().AxisX.Interval =
Chart1.ChartAreas().AxisY.Interval = '边框样式设置
Chart1.ChartAreas().BorderColor = Color.Black
Chart1.ChartAreas().BorderDashStyle = DataVisualization.Charting.ChartDashStyle.Solid
Chart1.ChartAreas().BorderWidth = '图例文字
'Chart1.Series["Series"].LegendText = "当前" '图例位置、字体设置;坐标轴位置设定
'Chart1.Legends[0].Position = new ElementPosition(10, 10, 88, 7)
'Chart1.Legends[0].Font = new Font("宋体", 9)
'Chart1.ChartAreas[0].InnerPlotPosition = new ElementPosition(1, 1, 1, 1)
End Sub Private Sub CmbYMax_SelectedValueChanged(sender As Object, e As EventArgs) Handles CmbYMax.SelectedValueChanged
Chart1.ChartAreas().AxisY.Maximum = CmbYMax.Text
End Sub Private Sub CmbYMin_SelectedValueChanged(sender As Object, e As EventArgs) Handles CmbYMin.SelectedValueChanged
Chart1.ChartAreas().AxisY.Minimum = CmbYMin.Text
End Sub Private Sub CmbXMin_SelectedValueChanged(sender As Object, e As EventArgs) Handles CmbXMin.SelectedValueChanged
Chart1.ChartAreas().AxisX.Minimum = Convert.ToDouble(CmbXMin.Text)
End Sub Private Sub CmbXMax_SelectedValueChanged(sender As Object, e As EventArgs) Handles CmbXMax.SelectedValueChanged
Chart1.ChartAreas().AxisX.Maximum = Convert.ToDouble(CmbXMax.Text)
End Sub Private Sub CheckBox_1_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox_1.CheckedChanged, CheckBox_6.CheckedChanged, CheckBox_5.CheckedChanged, CheckBox_4.CheckedChanged, CheckBox_3.CheckedChanged, CheckBox_2.CheckedChanged
If (sender.Name.Split("_").length = ) Then
Dim seriesName As String = "Series" + sender.Name.Split("_")()
If sender.Checked = True Then
Chart1.Series(seriesName).Enabled = True
Else
Chart1.Series(seriesName).Enabled = False
End If
End If
End Sub
End Class

图表控件MsChart使用demo的更多相关文章

  1. 问题:MSChart.exe;结果:微软图表控件MsChart使用方法及各种插件下载地址

    微软图表控件MsChart使用方法及各种插件下载地址 (2012-08-10 17:32:33) 转载▼ 标签: 图表 控件 下载地址 kernel32 微软 it 分类: C# 昨天在网上看到了微软 ...

  2. asp.net微软图表控件MsChart

    前段时间,开发项目时,由于需要,需要将一些数据统计,并以图表形式显示.由于是asp.net,所以就找到了MsChart图表控件,还是挺方便实用的,分享一下. MsChart控件的主要组成如图所示 工具 ...

  3. 微软图表控件MsChart使用

    assemblies节点下:<add assembly="System.Web.DataVisualization, Version=3.5.0.0, Culture=neutral, ...

  4. .net chart(图表)控件的使用-System.Windows.Forms.DataVisualization.dll

    这个案例指在介绍微软这套免费又功能强大的图表控件Microsoft Chart Controls for Microsoft .NET Framework 3.5,通过它,可让您的项目及报表,轻松套用 ...

  5. 比achartengine更加强大的Android图表控件。

    比achartengine更加强大的图表控件MPAndroidChart. 详细使用及demo:http://www.see-source.com/androidwidget/detail.html? ...

  6. 基于MVC4+EasyUI的Web开发框架经验总结(4)--使用图表控件Highcharts

    在我们做各种应用的时候,我们可能都会使用到图表统计,以前接触过一些不同的图表控件,在无意中发现了图表控件Highcharts,其强大的功能和丰富的互动效果,令人难以忘怀.本篇主要介绍在Web开发中使用 ...

  7. echart图表控件配置入门(二)常用图表数据动态绑定

    上一节 <echart图表控件配置入门(一)>介绍了echarts图表控件的入门配置,使开发人员可以快速搭建出一个静态的图表.但是在实际开发过程这还是不够的,不可能所有的图表控件都是静态数 ...

  8. echart图表控件配置入门(一)

    现在主流的web图表控件主要有hightchart.fusionchart.echart: echart作为百度前端部门近期推出的一个基于html5的免费图表控件,以其丰富图表类型和良好的兼容性速度得 ...

  9. asp.net微软图表控件使用示例

    <configuration> <system.webServer> <handlers> <remove name="ChartImageHand ...

随机推荐

  1. 【转】sed命令详解

    原文:http://www.cnblogs.com/emanlee/archive/2013/09/07/3307642.html sed命令行格式为: sed [-nefri]  'command' ...

  2. Redis多机功能之Sentinel

    Sentinel的目的:监视主从服务器,并在主服务器下线时自动进行故障转移 启动Sentinel 通过执行Redis安装文件中的redis-sentinel程序,可以启动一个Sentinel实例: r ...

  3. Redis多机功能介绍

    Redis多机功能目的:以单台Redis服务器过渡到多台Redis服务器 Redis单机在生产环境中存在的问题 1.内存容量不足 Redis使用内存来存书数据库中的数据,但是对于一台机器来说,硬件的内 ...

  4. 一个关于发邮件的类,可以模拟发送对smtp服务器或者是本地文件夹

    namespace SportsStore.Domain.Concrete { public class EmailSettings { public string MailToAddress = & ...

  5. 类成员函数指针 ->*语法剖析

    在cocos2d-x中,经常会出现这样的调用,如 ->*,这个是什么意思呢,如下面得这个例子: , 其实这是对类的成员函数指针的调用,在cocos2dx中,这种形式多用于回调函数的调用.如我们经 ...

  6. 翻译:Angular 2 - TypeScript 5 分钟快速入门

    原文地址:https://angular.io/docs/ts/latest/quickstart.html Angular 2 终于发布了 beta 版.这意味着正式版应该很快就要发布了. 让我们使 ...

  7. Grunt 之通配符

    在描述源码路径的时候,经常有一些特殊的奇怪的要求.Grunt 通过内建的 node-glob 和 minimatch 库提供了文件名的扩展机制. 常见的通配符如下: * 匹配除了 / 之外的任意数量的 ...

  8. 深度解析国内O2O模式

    今日在网上发现这篇文章很棒,详细的分析了当前BAT矩阵下的o2o 的模式.所以转载过来与大家一起分享. 文章来自于:http://www.siilu.com/20151214/158917.shtml ...

  9. 一步一步学习Unity3d学习笔记系1.4单服模式架构

    单服模式更适合做手游,只有一个服务器,在程序中通过代码模块来实现各功能,而不是物理模块划分. 登录模块实现,账号数据处理, 用户模块,处理角色权限处理, 匹配模块,匹配战斗 好友模块,负责好友管理 战 ...

  10. git 如何恢复只是提交到本地的文件(或者commit)

    今天早上傻逼了,把四天的代码commit到了本地,然后fetch一下,然后就全没了,不过git还是挺强大的 参考:http://blog.163.com/jiams_wang/blog/static/ ...