没有合适的资源?快使用搜索试试~ 我知道了~
详细讲解了在C#中如何在WINFORM下制作EXCEL中的各类图表,如饼图、柱状图等。根据此文档,可以设计出各种漂亮的图表。立即成为图表开发高手。
资源推荐
资源详情
资源评论
C#在 WinForm 中插入饼状图和柱状图等图标
当我们的软件需要各种饼状图和柱状图来表示数据时,我们或许会想到用 Oces 中的图形控件或是
第三方控件,但现在的第三方控件大都需要注册,有些免费的控件会有开发商的标记等。而对于使用
Oces 的图形控件来说,并不能在程序中得于很好控制,其使用的简易程度也较低,所以在这我给出在
C#中使用 GDI+实现饼状图和柱状图跟数据库联接显示数据的方法。
using System;
using System.IO;//用于文件存取
using System.Data;//用于数据访问
using System.Drawing;//提供画 GDI+图形的基本功能
using System.Drawing.Text;//提供画 GDI+图形的高级功能
using System.Drawing.Drawing2D;//提供画高级二维,矢量图形功能
using System.Drawing.Imaging;//提供画 GDI+图形的高级功能
namespace BaseLayer
{
public class PieChart
{
public PieChart()
{
}
//Render 是图形大标题,图开小标题,图形宽度,图形长度,饼图的数据集和饼图的数据集要表示出来
的数据
public Image Render(string title, string subTitle, int width, int height, DataSet chartData,int
DataLine)
{
const int SIDE_LENGTH = 400;
const int PIE_DIAMETER = 200;
DataTable dt = chartData.Tables[0];
//通过输入参数,取得饼图中的总基数
8oat sumData = 0;
foreach(DataRow dr in dt.Rows)
{
sumData += Convert.ToSingle(dr[DataLine]);
}
//产生一个 image 对象,并由此产生一个 Graphics 对象
Bitmap bm = new Bitmap(width,height);
Graphics g = Graphics.FromImage(bm);
//设置对象 g 的属性
g.ScaleTransform((Convert.ToSingle(width))/SIDE_LENGTH,(Convert.ToSingle(height))/
SIDE_LENGTH);
g.SmoothingMode = SmoothingMode.Default;
g.TextRenderingHint = TextRenderingHint.AntiAlias;
//画布和边的设定
g.Clear(Color.White);
g.DrawRectangle(Pens.Black,0,0,SIDE_LENGTH-1,SIDE_LENGTH-1);
//画饼图标题
g.DrawString(title,new Font(Tahoma,14),Brushes.Black,new PointF(5,5));
//画饼图的图例
g.DrawString(subTitle,new Font(Tahoma,12),Brushes.Black,new PointF(7,35));
//画饼图
8oat curAngle = 0;
8oat totalAngle = 0;
for(int i=0;i<dt.Rows.Count;i++)
{
curAngle = Convert.ToSingle(dt.Rows[i][DataLine]) / sumData * 360;
g.FillPie(new
SolidBrush(ChartUtil.GetChartItemColor(i)),100,65,PIE_DIAMETER,PIE_DIAMETER,totalAngle,
curAngle);
g.DrawPie(Pens.Black,100,65,PIE_DIAMETER,PIE_DIAMETER,totalAngle,curAngle);
totalAngle += curAngle;
}
//画图例框及其文字
g.DrawRectangle(Pens.Black,200,300,199,99);
g.DrawString(图表说明,new Font(Tahoma,12,FontStyle.Bold),Brushes.Black,new
PointF(200,300));
//画图例各项
PointF boxOrigin = new PointF(210,330);
PointF textOrigin = new PointF(235,326);
8oat percent = 0;
for(int i=0;i<dt.Rows.Count;i++)
{
g.FillRectangle(new
SolidBrush(ChartUtil.GetChartItemColor(i)),boxOrigin.X,boxOrigin.Y,20,10);
g.DrawRectangle(Pens.Black,boxOrigin.X,boxOrigin.Y,20,10);
percent = Convert.ToSingle(dt.Rows[i][DataLine]) / sumData * 100;
g.DrawString(dt.Rows[i][1].ToString() + - + dt.Rows[i][0].ToString() + ( + percent.ToString(0)
+ %),new Font(Tahoma,10),Brushes.Black,textOrigin);
boxOrigin.Y += 15;
剩余12页未读,继续阅读
资源评论
六月天_1
- 粉丝: 0
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于jsp+mysql的JSP九宫格日记本源码.zip
- 基于jsp+mysql的JSP会员卡积分管理系统源码.zip
- 仿小米商城微信小程序源码+项目说明.zip
- 基于jsp+mysql的JSP个人日记本源码.zip
- 南溪CN No1 fps网络断网工具.zip
- 基于jsp+mysql的JSP宠物商城源码.zip
- C++开发基于Qt的音乐播放器的设计与实现项目源码+项目使用说明(毕业设计).zip
- 基于jsp+mysql+servlet的JSP图书馆图书管理系统源码.zip
- C++开发基于Qt的音乐播放器的设计与实现项目源码+项目使用说明(毕业设计).zip
- 【2024win11软件启动速度反应慢解决方法附工具】
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功