pscj's Blog

走过岁月我才发现世界多不完美,成功或失败都有一些错觉

博客园 首页 新随笔 联系 订阅 管理

    由于项目的需要,试用了几个公司的图表控件,比如Dundas Chart,但是都觉得软件庞大,虽然功能也很强大,但是使用起来比较复杂,有很多功能实际用不上。后来试用了ChartFX,感觉不错,区区几行代码就可以Show出图表,以下是我写的一个例子:

using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using  SoftwareFX.ChartFX.Lite;

namespace ChartTest
{
    
/// <summary>
    
/// Form1 的摘要说明。
    
/// </summary>

    public class Form1 : System.Windows.Forms.Form
    
{
        
private SoftwareFX.ChartFX.Lite.Chart chart1;
        
private System.Windows.Forms.ComboBox comboBox1;
        
private System.Windows.Forms.CheckBox checkBox1;
        
/// <summary>
        
/// 必需的设计器变量。
        
/// </summary>

        private System.ComponentModel.Container components = null;

        
public Form1()
        
{
            
//
            
// Windows 窗体设计器支持所必需的
            
//
            InitializeComponent();

            
//
            
// TODO: 在 InitializeComponent 调用后添加任何构造函数代码
            
//
        }


        
/// <summary>
        
/// 清理所有正在使用的资源。
        
/// </summary>

        protected override void Dispose( bool disposing )
        
{
            
if( disposing )
            
{
                
if (components != null
                
{
                    components.Dispose();
                }

            }

            
base.Dispose( disposing );
        }


        
#region Windows 窗体设计器生成的代码
        
/// <summary>
        
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
        
/// 此方法的内容。
        
/// </summary>

        private void InitializeComponent()
        
{
            
this.chart1 = new SoftwareFX.ChartFX.Lite.Chart();
            
this.comboBox1 = new System.Windows.Forms.ComboBox();
            
this.checkBox1 = new System.Windows.Forms.CheckBox();
            
this.SuspendLayout();
            
// 
            
// chart1
            
// 
            this.chart1.Location = new System.Drawing.Point(816);
            
this.chart1.Name = "chart1";
            
this.chart1.Size = new System.Drawing.Size(408208);
            
this.chart1.TabIndex = 0;
            
// 
            
// comboBox1
            
// 
            this.comboBox1.Items.AddRange(new object[] {
                                                           
"柱状图",
                                                           
"饼图",
                                                           
"折线图"}
);
            
this.comboBox1.Location = new System.Drawing.Point(48264);
            
this.comboBox1.Name = "comboBox1";
            
this.comboBox1.Size = new System.Drawing.Size(12120);
            
this.comboBox1.TabIndex = 1;
            
this.comboBox1.Text = "请选择";
            
this.comboBox1.SelectedIndexChanged += new System.EventHandler(this.comboBox1_SelectedIndexChanged);
            
// 
            
// checkBox1
            
// 
            this.checkBox1.Location = new System.Drawing.Point(208264);
            
this.checkBox1.Name = "checkBox1";
            
this.checkBox1.Size = new System.Drawing.Size(7224);
            
this.checkBox1.TabIndex = 2;
            
this.checkBox1.Text = "3D效果";
            
this.checkBox1.CheckedChanged += new System.EventHandler(this.checkBox1_CheckedChanged);
            
// 
            
// Form1
            
// 
            this.AutoScaleBaseSize = new System.Drawing.Size(614);
            
this.ClientSize = new System.Drawing.Size(480310);
            
this.Controls.Add(this.checkBox1);
            
this.Controls.Add(this.comboBox1);
            
this.Controls.Add(this.chart1);
            
this.Name = "Form1";
            
this.Text = "Form1";
            
this.Load += new System.EventHandler(this.Form1_Load);
            
this.ResumeLayout(false);

        }

        
#endregion


        
/// <summary>
        
/// 应用程序的主入口点。
        
/// </summary>

        [STAThread]
        
static void Main() 
        
{
            Application.Run(
new Form1());
        }


        
private void Form1_Load(object sender, System.EventArgs e)
        
{
            chart1.OpenData(COD.Values, 
24); 
            chart1.Value[
00= 100;
            chart1.Value[
10= 200;
            chart1.Value[
01= 300;
            chart1.Value[
11= 400;
            chart1.Value[
02= 500;
            chart1.Value[
12= 600;
            chart1.Value[
03= 700;
            chart1.Value[
13= 800;
            chart1.CloseData(COD.Values); 
            
            chart1.Titles[
0].Text = "业务统计图";
            chart1.PointLabels 
= true;
            
            chart1.SerLegBox 
= true;
            chart1.SerLeg[
0= "业务 A";
            chart1.SerLeg[
1= "业务 B";

        }


        
private void comboBox1_SelectedIndexChanged(object sender, System.EventArgs e)
        
{
            
if(comboBox1.SelectedIndex == 0)
                chart1.Gallery 
= Gallery.Bar;
            
else if(comboBox1.SelectedIndex == 1)
                chart1.Gallery 
= Gallery.Pie;
            
else if(comboBox1.SelectedIndex == 2)
                chart1.Gallery 
= Gallery.Lines;
        }


        
private void checkBox1_CheckedChanged(object sender, System.EventArgs e)
        
{
            
if(checkBox1.Checked)
                chart1.Chart3D 
= true;
            
else
                chart1.Chart3D 
= false;
        }

    }

}

运行效果如下图:

posted on 2005-05-16 18:03  pscj's Blog  阅读(3487)  评论(7编辑  收藏  举报