C# winform动态画条形统计图
2019-04-22 20:04
225 查看
数据表:
将数据查询出来后,放在一个DataTable(以下变量dt),查询代码省略
找到要画图的容器,在容器的Paint事件中写上代码:
private void TiaoXing_Paint(object sender, PaintEventArgs e) { Pen pen = new Pen(Color.Blue, 2); Graphics TiaoXingTongJi = e.Graphics; Font myFont = new Font("宋体", 10); GraphicsPath myGP = new GraphicsPath();//创建一系类相连的线 myGP.AddLine(34, 40, 40, 20);//添加线段(x1,y1.x2,y2) myGP.AddLine(40, 20, 46, 40); myGP.AddLine(40, 20, 40, 420); myGP.AddLine(40, 420, 480, 420); myGP.AddLine(480, 420, 460, 414); myGP.AddLine(480, 420, 460, 426); TiaoXingTongJi.DrawPath(pen, myGP); Brush myBrush = new SolidBrush(Color.Blue); for (int i = 0; i < 19; i++)//以10为一格画19格 { TiaoXingTongJi.DrawString((i * 10).ToString(), myFont, myBrush, 12, 413 - (i * 20)); TiaoXingTongJi.DrawString("-", myFont, myBrush, 39, 413 - (i * 20)); } for (int i = 1; i < dt.Rows.Count + 1; i++) { string ShuLiang = dt.Rows[i - 1]["数量"].ToString(); int x = 20 * i * 3;//x轴 int GaoDu = Convert.ToInt 7ff7 32(ShuLiang) * 2;//每个矩形的高 int y = 420 - GaoDu;//要表名的数量y轴 TiaoXingTongJi.DrawString(dt.Rows[i - 1]["物品名称"].ToString(), myFont, myBrush, x, 425); TiaoXingTongJi.FillRectangle(myBrush, x, y, 25, GaoDu); TiaoXingTongJi.DrawString(ShuLiang, myFont, myBrush, x, y - 20); } }
效果图:
相关文章推荐
- 基于C# winform企业进销存软件开发(典型权限控制+报表工具+动态加载+多线程+跨数据库访问)
- C#Winform 窗体之创建动态上下文菜单
- C#WinForm程序调用SVG,并动态在SVG图上绑值
- C# WinForm 用MenuStrip动态生成菜单并动态加载事件
- c# WinForm窗体实现动态时间展示
- c#WINFORM中如何为动态生成的按钮加背景图片
- 【C#利用后台动态加载数据】Winform“防界面卡死”
- (转)【C#利用后台动态加载数据】Winform“防界面卡死”
- c#WINFORM中如何为动态生成的按钮加背景图片
- C#实现用树型列表动态显示菜单,Winform 常用的UI设计
- C# WinForm 控件在窗体中动态居中 创建、删除控件及对其赋值
- c# 用反射实现winform界面动态存储理论知识
- C#动态递归绑定TreeView(WinForm)
- C# WinForm TreeView 动态生成 无限级树 Log4net SQLite
- C#winform中动态添加button并绑定事件
- C#实现WinForm程序的动态系统托盘图标
- 搞定2个问题:C# 动态调用java webservice,Winform解析Json字符串中特殊值
- c# winform 显示动态gif图片的方法
- C# winform 中怎么在DataGridView中动态添加DateTimePicker列
- c# winform 为按钮动态背景图片