Demo of Microsoft Chart Controls for Microsoft .NET Framework 3.5

控件介绍

Demo展示

主要代码

代码
 
   
/*
* author:Joey Zhao
* date:2010-8-18
* describe: a simple demo of MsChart control
*/
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Windows.Forms.DataVisualization.Charting;

namespace MsChartDemo
{
public partial class FormChart : Form
{
private int _maxXValue; // 横坐标最大值
private int _maxYValue; // 纵坐标最大值
private SeriesChartType _chartType = SeriesChartType.Column; // 显示样式
private bool _show3dStyle; // 是否显示3D效果
private string _labelStyle = " Auto " ; // lableStyle用户属性值

private List < Entity > m_listXrayFlux = new List < Entity > (); // 假数据,测试用


// 构造函数
public FormChart()
{
this .InitializeComponent();
_maxXValue
= 10 ;
_maxYValue
= 100 ;
this .InitControls();
this .BindData();
}

// 绑定数据
private void BindData()
{
// 绑定Series1
Random random = new Random();
for ( int i = 0 ; i < 10 ; i ++ )
{
this .chart1.Series[ 0 ].Points.AddY(random.Next( 0 , 100 ));
}

// 绑定Series3,Series3
List < MyEntity > list = new List < MyEntity > ();
MyEntity ent
= null ;
for ( int i = 0 ; i < 20 ; i ++ )
{
ent
= new MyEntity();
ent.X
= i;
ent.Y
= random.Next( 0 , 100 );
ent.Z
= random.Next( 0 , 100 );
list.Add(ent);
}
this .chart1.DataSource = list;
this .chart1.Series[ 2 ].XValueMember = " X " ;
this .chart1.Series[ 2 ].YValueMembers = " Y " ;
this .chart1.Series[ 1 ].XValueMember = " X " ;
this .chart1.Series[ 1 ].YValueMembers = " Z " ;
}

// 初始化控件
private void InitControls()
{
//
// trackBarX控件
//
this .trackBarX.Minimum = _maxXValue;
this .trackBarX.Maximum = 100 ;
this .trackBarX.ValueChanged += delegate ( object o, EventArgs e)
{
_maxXValue
= this .trackBarX.Value;
this .UpDateSetting();
};
//
// trackBarY控件
//
this .trackBarY.Minimum = _maxYValue;
this .trackBarY.Maximum = 500 ;
this .trackBarY.ValueChanged += delegate ( object o, EventArgs e)
{
_maxYValue
= this .trackBarY.Value;
this .UpDateSetting();
};
//
// comboBoxStyle控件
//
this .comboBoxStyle.DropDownStyle = ComboBoxStyle.DropDownList;
string [] array = Enum.GetNames( typeof (SeriesChartType));
for ( int i = 0 ; i < array.Length; i ++ )
{
this .comboBoxStyle.Items.Add(array[i]);
}
this .comboBoxStyle.Text = SeriesChartType.Column.ToString();
this .comboBoxStyle.SelectedIndexChanged += delegate ( object o, EventArgs e)
{
if ( this .comboBoxStyle.Text == string .Empty)
{
return ;
}
_chartType
= (SeriesChartType)Enum.Parse( typeof (SeriesChartType), this .comboBoxStyle.Text);
this .UpDateSetting();
};
//
// ComboBoxLableStyle控件
//
this .comboBoxLableStyle.Items.AddRange(
new object [] { " Auto " , " Top " , " Bottom " , " Right " ,
" Left " , " TopLeft " , " TopRight " , " BottomLeft " , " BottomRight " , " Center " });
this .comboBoxLableStyle.SelectedIndex = 0 ;
this .comboBoxLableStyle.DropDownStyle = ComboBoxStyle.DropDownList;

this .comboBoxLableStyle.SelectedIndexChanged += delegate ( object o, EventArgs e)
{
_labelStyle
= this .comboBoxLableStyle.Text;
this .UpDateSetting();
};
//
// Chart控件
//
this .chart1.Series[ 0 ].IsValueShownAsLabel = true ;
this .chart1.Series[ 1 ].IsValueShownAsLabel = true ;

this .chart1.ChartAreas[ 0 ].AxisX.Title = " ChartArea1 " ;
this .chart1.ChartAreas[ 1 ].AxisX2.Title = " ChartArea2 " ;

this .chart1.Series[ 0 ].XAxisType = AxisType.Secondary; // 坐标样式
this .chart1.Series[ 0 ].YAxisType = AxisType.Secondary; // 坐标样式
//
// 3D按钮
//
this .button3D.Click += delegate ( object o, EventArgs e)
{
_show3dStyle
= ! _show3dStyle;
this .UpDateSetting();
};
}

// 更新Chart控件
private void UpDateSetting()
{
foreach (var item in this .chart1.Series)
{
item.ChartType
= _chartType;
item[
" LabelStyle " ] = _labelStyle;
}
this .chart1.ChartAreas[ 0 ].AxisX2.Maximum = _maxXValue;
this .chart1.ChartAreas[ 0 ].AxisY2.Maximum = _maxYValue;

this .chart1.ChartAreas[ 1 ].AxisX.Maximum = _maxXValue;
this .chart1.ChartAreas[ 1 ].AxisY.Maximum = _maxYValue;

this .chart1.ChartAreas[ 0 ].Area3DStyle.Enable3D = _show3dStyle;
this .chart1.ChartAreas[ 1 ].Area3DStyle.Enable3D = _show3dStyle;
}
}
class MyEntity
{
public int X
{
get ;
set ;
}
public int Y
{
get ;
set ;
}
public int Z
{
get ;
set ;
}
}
}

 

主要概念
  • ChartArea:包括一组到两组横纵坐标,一个或多个Series放在CharArea上。一个Chart控件可以包含多个ChartArea
  • Series:一组数据,包含了构成图形的一系列坐标点

转载于:https://www.cnblogs.com/zzy0471/archive/2010/08/18/1802808.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值