`
izuoyan
  • 浏览: 9218924 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

C# winform chart 饼图 直方图 and so on

阅读更多

在[工具]->[添加/移出工具箱]->鼠标单击->选择[COM组件]
找到Mcrosoft Chart Control 6.0(SP4)(oledb) 选中,然后[确定],你会发现你的工具箱里面有了一个这样的控件了!然后接着开始写代码!
____________________________________慢慢看把,道路很长的哦(记得给我分哦)_____________
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;

namespace WindowsApplication1
{
/// <summary>
/// Form1 的摘要说明。
/// </summary>
public class Form1 : System.Windows.Forms.Form
{
//这里申明了DataSet,OleDbCommand,OleDbDataAdapter和OleDbConnection
private System.Data.DataSet ds;
private System.Data.OleDb.OleDbCommand oleDbSelectCommand1;
private System.Data.OleDb.OleDbCommand oleDbInsertCommand1;
private System.Data.OleDb.OleDbCommand oleDbUpdateCommand1;
private System.Data.OleDb.OleDbCommand oleDbDeleteCommand1;
private System.Data.OleDb.OleDbDataAdapter da;
private System.Data.OleDb.OleDbCommand comm;
private System.Data.OleDb.OleDbConnection cn;

//这里声明了一个AxMSChart类的实例;
private AxMSChart20Lib.AxMSChart axMSChart1;

private System.Windows.Forms.TextBox t1;
/// <summary>
/// 必需的设计器变量。
/// </summary>
private System.ComponentModel.Container components = null;

public void myphoto()
{
//装载数据库的数据
cn.ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+Application.StartupPath+"\\data\\hzj.mdb"+";Persist Security Info=False";
cn.Open();
comm.Connection=cn;
//我的表命名为myid,ST字段代表累计时间(s),yl代表压力(MPa)
string sql="select st,yl from myid";
comm.CommandText=sql;
da.SelectCommand=comm;
da.Fill(ds,"newtb");

//设计原理,由于axMSChart1的数据是直接可以接受一个二为数组的,
//所以我把事先读好的数据放到一个数组里
//注意数据库对应二为数组,是这样的行是一位,列是二位;
//所以我们看看就这样做
//由于楼主提出以时间(第2列)为横坐标,压力(第4列)为纵坐标的曲线图
//所以我们要把时间放在数组里的第一位,而压力放在第2位
//因为在axMSChart里数组第一位代表横坐标
//最后我们申明一个2纬数组,由于2纬数组一位代表行
//所以我们可以用ds.Tables["newtb"].Rows.Count取得行的总数
//而我们只要2列就可以了,所以我们是直接知道2纬数组的第2位的值,也就是2
//最后也是最关键的,也就是axMSChart需要数组里的第一个值来描述坐标点的说明
//所以我们就要空出一个位的数组来做描述
//因此数组真正的长度为ds.Tables["newtb"].Rows.Count+1
Object[,] myay=new Object[ds.Tables["newtb"].Rows.Count+1,2];

myay[0,0]=(Object)"时间描述";//这里可以不用写什么
myay[0,1]=(Object)"压力描述";//这里是描述坐标点的压力


for(int i=1;i<=ds.Tables["newtb"].Rows.Count;i++)
{


//这里是个重点,为什么要加上"["+"]"
//其实这个axMSChart1玩意很有意识的,如果你的字符串是数字类型的描述
//就算是字符串类型也不会当成横坐标哦!!
//嘿嘿有意识把,本人曾经为了这个问题搞了几天的!
myay[i,0]=(Object)"["+ds.Tables["newtb"].Rows[i-1]["st"].ToString()+"]";
myay[i,1]=(Object)ds.Tables["newtb"].Rows[i-1]["yl"].ToString();


}

//设计axMSChart1的数据

axMSChart1.ChartData = myay;


//设计图表的表头名称和对齐方式
axMSChart1.Title.Text = "这里是一个图表";

axMSChart1.Legend.Location.LocationType = MSChart20Lib.VtChLocationType.VtChLocationTypeRight;

axMSChart1.Legend.Location.Visible = true;


//设计X轴名称
axMSChart1.Plot.get_Axis(MSChart20Lib.VtChAxisId.VtChAxisIdX, null).AxisTitle.Text = "这里是时间描述";

//设计Y轴名称
axMSChart1.Plot.get_Axis(MSChart20Lib.VtChAxisId.VtChAxisIdY, null).AxisTitle.Text = "这里是压力描述";


//设计图表形状的描述方式,是并图还是线图等等
//axMSChart1.chartType = MSChart20Lib.VtChChartType.VtChChartType2dLine;


ds.Tables.Clear();
cn.Close();


}

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()
{
System.Resources.ResourceManager resources = new System.Resources.ResourceManager(typeof(Form1));
this.ds = new System.Data.DataSet();
this.oleDbSelectCommand1 = new System.Data.OleDb.OleDbCommand();
this.oleDbInsertCommand1 = new System.Data.OleDb.OleDbCommand();
this.oleDbUpdateCommand1 = new System.Data.OleDb.OleDbCommand();
this.oleDbDeleteCommand1 = new System.Data.OleDb.OleDbCommand();
this.da = new System.Data.OleDb.OleDbDataAdapter();
this.comm = new System.Data.OleDb.OleDbCommand();
this.cn = new System.Data.OleDb.OleDbConnection();
this.axMSChart1 = new AxMSChart20Lib.AxMSChart();
this.t1 = new System.Windows.Forms.TextBox();
((System.ComponentModel.ISupportInitialize)(this.ds)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.axMSChart1)).BeginInit();
this.SuspendLayout();
//
// ds
//
this.ds.DataSetName = "NewDataSet";
this.ds.Locale = new System.Globalization.CultureInfo("zh-CN");
//
// da
//
this.da.DeleteCommand = this.oleDbDeleteCommand1;
this.da.InsertCommand = this.oleDbInsertCommand1;
this.da.SelectCommand = this.oleDbSelectCommand1;
this.da.UpdateCommand = this.oleDbUpdateCommand1;
//
// axMSChart1
//
this.axMSChart1.DataSource = null;
this.axMSChart1.Location = new System.Drawing.Point(0, 8);
this.axMSChart1.Name = "axMSChart1";
this.axMSChart1.OcxState = ((System.Windows.Forms.AxHost.State)(resources.GetObject("axMSChart1.OcxState")));
this.axMSChart1.Size = new System.Drawing.Size(688, 328);
this.axMSChart1.TabIndex = 0;
//
// t1
//
this.t1.Location = new System.Drawing.Point(80, 384);
this.t1.Name = "t1";
this.t1.Size = new System.Drawing.Size(544, 21);
this.t1.TabIndex = 1;
this.t1.Text = "textBox1";
//
// Form1
//
this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);
this.ClientSize = new System.Drawing.Size(704, 445);
this.Controls.Add(this.t1);
this.Controls.Add(this.axMSChart1);
this.Name = "Form1";
this.Text = "Form1";
this.Load += new System.EventHandler(this.Form1_Load);
((System.ComponentModel.ISupportInitialize)(this.ds)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.axMSChart1)).EndInit();
this.ResumeLayout(false);

}
#endregion

/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main()
{
Form1 myf=new Form1();
myf.myphoto();
Application.Run(myf);
}

private void Form1_Load(object sender, System.EventArgs e)
{

}
}
}

分享到:
评论

相关推荐

    C# winform chart 饼图 直方图

    标题中提到的"C# winform chart 饼图 直方图"指的是在C#的WinForm应用程序中使用图表控件来实现饼图和直方图的图形展示。WinForm是.NET Framework提供的一个用于创建桌面应用程序的框架,它允许开发者使用各种控件,...

    C# winform 绘制曲线图,饼图,图片添加文字

    本主题主要关注如何利用C#的GDI+(Graphics Device Interface Plus)库来绘制曲线图、饼图以及在图片上添加文字,这些都是创建交互式、视觉效果丰富的应用程序的关键技术。 1. **GDI+基础** GDI+是.NET Framework...

    c# winform chart——数据统计软件——Chart 曲线图

    在C# WinForm应用开发中,`Chart`控件是一个非常强大的工具,它允许开发者创建各种图表类型,如折线图、柱状图、饼图等,用于展示和分析数据。本教程主要聚焦于如何利用`Chart`控件制作数据统计软件,并通过曲线图...

    winform中chart控件的简单应用,饼图、柱状图、曲线图

    本文将深入探讨如何在Winform应用中使用Chart控件,包括饼图、柱状图和曲线图的创建与配置。 一、Chart控件基础 Chart控件是System.Windows.Forms.DataVisualization.Charting命名空间的一部分,它提供了丰富的...

    C# 3D 饼图 PieChart 三维

    在C#编程环境中,3D饼图(PieChart)是一种常用的数据可视化工具,它能够以立体的方式展示数据比例关系,使复杂的数据变得直观易懂。本文将深入探讨C#中创建3D饼图的关键知识点,包括3D效果的实现、数据绑定、自定义...

    c# winForm chart控件动态更新 支持局部放大

    在C# WinForm应用开发中,`Chart`控件是一个非常强大的工具,用于展示各种数据可视化图表,如折线图、柱状图、饼图等。在这个特定的场景中,我们关注的是如何实现`Chart`控件的动态更新以及支持局部放大功能。这在...

    C# winform使用zedgraph制作饼图条形图和折线图的demo

    这个"C# winform使用zedgraph制作饼图条形图和折线图的demo"正是为了帮助开发者更好地理解和应用ZedGraph库。 ZedGraph是一个开源的.NET图形库,它可以方便地集成到WinForm应用中,用以绘制2D图形。下面我们将详细...

    c# winform绘制波形图

    c# winform绘制波形图

    C# winform自定义饼图控件.zip

    自定义饼图控件 可以定义图表的长宽尺寸并自动缩放,便于wincc调用时方便布局 可以定义图表的背景色,便于wincc调用时融入背景,VS中可以使用透明背景,透明背景这个参数导入wincc后会失效 可以定义标签显示的...

    C# winform Chart控件:chart图实时显示,x轴为时间,显示格式为提供修改格式可以根据需求自行修改

    C# winform Chart控件:chart图实时显示,x轴为时间,显示格式为提供修改格式可以根据需求自行修改。 功能实现为 X轴横坐标随系统时间刷新的同时Y轴从0,0原点直线式的匀速上升 Y轴的刻度也会随着X轴时间的刷新自动...

    C# WinFrom Chart 图表控件 滚动条 日期时间坐标

    本文将深入探讨如何使用C# WinForm的Chart控件,特别是如何添加X轴滚动条以及设置日期时间坐标。此外,我们还将讨论如何在图表中同时显示折线和点,并且如何添加间隔日期的数据。 首先,让我们了解Chart控件的基本...

    C# winform 曲线图

    `C# chart`控件就是这样的工具,它允许开发者创建各种图表类型,如折线图、柱状图、饼图等,以直观地呈现数据。在这个场景中,我们主要关注的是“曲线图”,它通常用于展示随时间变化的趋势或关系。 首先,让我们...

    C# 柱状图、折线图、饼图源码(chart控件的简单示例).rar

    本资源“C# 柱状图、折线图、饼图源码(chart控件的简单示例)”提供了一些基础示例,让我们深入了解一下这些图表类型的实现。 首先,我们要知道Chart控件是Windows Forms中的一个强大组件,它支持多种图表类型,如...

    winform chart动态跟进式折线图

    在Windows Forms(WinForm)应用程序开发中,图表控件经常被用来可视化数据,例如显示折线图、柱状图、饼图等。本主题将详细探讨如何创建一个动态跟进式的折线图,即数据随着时间的推移而实时更新。这在监控系统性能...

    c# winform 绘制多行文本:自动换行:文本

    c# winform 绘制多行文本:自动换行:文本c# winform 绘制多行文本:自动换行:文本c# winform 绘制多行文本:自动换行:文本c# winform 绘制多行文本:自动换行:文本c# winform 绘制多行文本:自动换行:文本c# winform 绘制...

    C# winform 七个流程图项目合集(附下载链接)

    C# winform 七个流程图项目合集(附下载链接),详细情况请看我的文章介绍:https://blog.csdn.net/weixin_43474701/article/details/132803111 流程图项目1 右击出现功能菜单,可以添加图形,矩形,椭圆,文本框...

    winform c# mschart demo 范例

    Microsoft Chart Control是.NET Framework的一个组件,它为开发人员提供了一种强大的方式来展示和分析数据,通过各种图表类型如折线图、柱状图、饼图等进行数据可视化。它支持多种图表样式和自定义选项,可以满足从...

    skn皮肤 ,SSK皮肤,C# ,winform ,chart波形图

    在C#的Winform应用中,Chart控件是一个强大的工具,用于绘制各种图表,如折线图、柱状图、饼图等。在给定的"zhexiantu"文件中,很可能包含了一个利用Chart控件创建的折线图程序。折线图常用于表示数据随时间变化的...

    C# winform 万能打印模板,可以打印证书,修改证书参数,C#窗体程序

    C# winform 万能打印模板,可以打印证书,修改证书参数,C#窗体程序,代码注释详细 C# winform 万能打印模板,可以打印证书,修改证书参数,C#窗体程序,代码注释详细 C# winform 万能打印模板,可以打印证书,修改...

    c#画图的封装(折线图,饼图,直方图

    在C#中绘制图形,尤其是折线图、饼图和直方图,通常涉及到使用图形库或组件。这里提到的内容是使用OWC11库,这是一个由微软提供的Office Web Components,它允许在Web应用程序中创建和展示图表。下面将详细解释如何...

Global site tag (gtag.js) - Google Analytics