C#实现动态数据绘图graphic的方法示例
发布时间 - 2026-01-11 03:07:05 点击率:次本文实例讲述了C#实现动态数据绘图graphic的方法。分享给大家供大家参考,具体如下:
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.Drawing.Drawing2D;
namespace Drawing
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private int WidthAdded = 0;
private int HeightAdded = 0;
private int Added_Value = 15;
private int Incremented = 3;
private double Width_Max = 0.0f;
private double Height_Max = 0f;
private string hstrlink;
private string vstrlink;
private const int hor_kedu=17;
private const int ver_kedu = 13;
private double HelpRdm = 0;
private void Form1_Load(object sender, EventArgs e)
{
Width_Max=Convert.ToDouble(panel.ClientSize.Width);
Height_Max = Convert.ToDouble(panel.ClientSize.Height);
BtnStatusInfoForb();
}
private void button1_Click(object sender, EventArgs e)
{
Graphics myGraphics_framwork;
Pen myPen = new Pen(Color.Blue, 0.25f);
myGraphics_framwork = panel.CreateGraphics();
for (int Increment = 0; Increment < panel.Height; Increment += Incremented)
{
myGraphics_framwork.DrawLine(myPen, 0, HeightAdded, panel.ClientSize.Width, HeightAdded);
HeightAdded = HeightAdded + Added_Value;
}
for (int Increment = 0; Increment < panel.Height; Increment += Incremented)
{
myGraphics_framwork.DrawLine(myPen, WidthAdded, 0, WidthAdded, panel.ClientSize.Height);
WidthAdded = WidthAdded + Added_Value;
}
myGraphics_framwork.Dispose();
for (int hstart = 0; hstart < Width_Max; hstart += hor_kedu)
{
hstrlink = hstrlink + hstart.ToString() + "-";
}
label2.Text = hstrlink;
for (int start = (int)Height_Max; start > 0; start -= ver_kedu)
{
vstrlink = vstrlink + start.ToString() + "-" + "\n";
}
label3.Text = vstrlink + "0-";
BtnStatusInfoActi();
button1.Enabled = false;
}
private void BtnStatusInfoForb()
{
button2.Enabled = false;
button3.Enabled = false;
button4.Enabled = false;
trackBar1.Enabled = false;
Rec_NumBox.Enabled = false;
}
private void BtnStatusInfoActi()
{
button2.Enabled = true;
button3.Enabled = true;
button4.Enabled = true;
trackBar1.Enabled = true;
Rec_NumBox.Enabled = true;
}
private void myfun()
{
Graphics myGraphics = panel.CreateGraphics();
Font myFont = new Font("Times New Roman", 72, FontStyle.Italic);
Point startPoint = new Point(0, 0);
Point endPoint = new Point(30, 30);
LinearGradientBrush myBrush = new LinearGradientBrush(startPoint, endPoint, Color.Black, Color.Yellow);
myBrush.WrapMode = WrapMode.TileFlipXY;
myGraphics.DrawString("String", myFont, myBrush, 0, 0);
}
private void button2_Click(object sender, EventArgs e)
{
if (ParaBox1.Text == null)
{
MessageBox.Show("请输入矩形的高度");
}
else
{
try
{
Graphics myGraphics_Rectangle = panel.CreateGraphics();
Pen myPen_Rec = new Pen(Color.Red, 3);
Rectangle rect = new Rectangle();
rect.X = 20; rect.Y = panel.ClientSize.Height - Convert.ToInt32(ParaBox1.Text);
rect.Width = 20; rect.Height = panel.ClientSize.Height;
myGraphics_Rectangle = panel.CreateGraphics();
myGraphics_Rectangle.DrawRectangle(myPen_Rec, rect);
SolidBrush MyRectBrush = new SolidBrush(Color.Purple);
myGraphics_Rectangle.FillRectangle(MyRectBrush, rect);
myGraphics_Rectangle.Dispose();
}
catch (Exception Excp)
{
MessageBox.Show(Excp.Message);
}
}
}
/// <summary>
///
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button3_Click(object sender, EventArgs e)
{
Graphics myGraphics_Rectangle = panel.CreateGraphics();
if (Rec_NumBox == null)
{
MessageBox.Show("请输入你要绘制的矩形数量");
}
else
{
double count = Convert.ToInt32(Rec_NumBox.Text);
double TableSpace = (1 * Width_Max) / (4 * count);
double TableWidth = (3 * Width_Max) / (4 * count);
double RecOffset = TableWidth + TableSpace;//
Pen myPen_Rec = new Pen(Color.Red, 3);
for (long RectNum = 0; RectNum < count; RectNum++)
{
Random Radom = new Random();
System.Threading.Thread.Sleep(20);
double RandomHegiht =Radom.Next(0, Convert.ToInt32(Height_Max));
Rectangle rect = new Rectangle();
rect.X =Convert.ToInt32(RectNum*RecOffset);
rect.Y = Convert.ToInt32(panel.ClientSize.Height - RandomHegiht);
rect.Width = Convert.ToInt32(TableWidth);
rect.Height = panel.ClientSize.Height;
myGraphics_Rectangle = panel.CreateGraphics();
myGraphics_Rectangle.DrawRectangle(myPen_Rec, rect);
SolidBrush MyRectBrush = new SolidBrush(Color.Green);
myGraphics_Rectangle.FillRectangle(MyRectBrush, rect);
}
myGraphics_Rectangle.Dispose();
}
Rec_NumBox.Text = Added_Value.ToString();
Added_Value = Added_Value+50;
}
private void button4_Click(object sender, EventArgs e)
{
StringFormat sf=new StringFormat();
sf.Alignment = StringAlignment.Near;
Graphics myGraphics = panel.CreateGraphics();
RectangleF REf = new RectangleF(12, 30, 8, 38);
Font myFont = new Font("Times New Roman", 62, FontStyle.Italic);
Point startPoint = new Point(0, 0);
Point endPoint = new Point(30, 30);
LinearGradientBrush myBrush = new LinearGradientBrush(startPoint, endPoint, Color.Green, Color.Blue);
SolidBrush MyRectBrush = new SolidBrush(Color.Purple);
myBrush.WrapMode = WrapMode.TileFlipXY;
myGraphics.DrawString("b2spirit", myFont, myBrush, 0, 0);
Random r=new Random();
int temp=r.Next(10,300);
myGraphics.DrawString(temp.ToString(), myFont, MyRectBrush, REf, sf);
}
private void trackBar1_Scroll(object sender, EventArgs e)
{
TrackBar myTB=new TrackBar();
myTB=(TrackBar)sender;
Rec_NumBox.Text = myTB.Value.ToString();
}
}
}
截图
更多关于C#相关内容感兴趣的读者可查看本站专题:《C#图片操作技巧汇总》、《C#常见控件用法教程》、《WinForm控件用法总结》、《C#数据结构与算法教程》、《C#面向对象程序设计入门教程》及《C#程序设计之线程使用技巧总结》
希望本文所述对大家C#程序设计有所帮助。
# C#
# 动态数据
# 绘图
# graphic
# C#实现Windows Form调用R进行绘图与显示的方法
# C#打印绘图的实现方法
# C# GDI在控件上绘图的方法
# 混合语言编程—C#使用原生的Directx和OpenGL绘图的方法
# 深入c# GDI+简单绘图的具体操作步骤(四)
# 深入c# GDI+简单绘图的具体操作步骤(三)
# 深入c# GDI+简单绘图的具体操作步骤(二)
# 深入c# GDI+简单绘图的具体操作步骤(一)
# C#中GraphicsPath的AddString方法用法实例
# C#中GraphicsPath的Warp方法用法实例
# C#中GraphicsPath的Widen方法用法实例
# C#中GraphicsPath的Flatten方法用法实例
# 程序设计
# 请输入
# 相关内容
# 你要
# 感兴趣
# 数据结构
# 给大家
# 更多关于
# 所述
# 使用技巧
# 面向对象
# 操作技巧
# 讲述了
# Width
# Height
# ClientSize
# ToDouble
# panel
# myGraphics_framwork
# Pen
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
网站制作报价单模板图片,小松挖机官方网站报价?
Laravel如何操作JSON类型的数据库字段?(Eloquent示例)
Laravel怎么实现前端Toast弹窗提示_Laravel Session闪存数据Flash传递给前端【方法】
Bootstrap整体框架之JavaScript插件架构
网站建设要注意的标准 促进网站用户好感度!
香港服务器WordPress建站指南:SEO优化与高效部署策略
如何自己制作一个网站链接,如何制作一个企业网站,建设网站的基本步骤有哪些?
js代码实现下拉菜单【推荐】
Laravel如何使用withoutEvents方法临时禁用模型事件
Win11关机界面怎么改_Win11自定义关机画面设置【工具】
高防服务器租用首荐平台,企业级优惠套餐快速部署
如何在阿里云虚拟服务器快速搭建网站?
如何在香港服务器上快速搭建免备案网站?
如何快速生成专业多端适配建站电话?
北京网站制作公司哪家好一点,北京租房网站有哪些?
Laravel路由Route怎么设置_Laravel基础路由定义与参数传递规则【详解】
laravel服务容器和依赖注入怎么理解_laravel服务容器与依赖注入解析
最好的网站制作公司,网购哪个网站口碑最好,推荐几个?谢谢?
如何用低价快速搭建高质量网站?
如何在宝塔面板创建新站点?
大连企业网站制作公司,大连2025企业社保缴费网上缴费流程?
如何用西部建站助手快速创建专业网站?
Android滚轮选择时间控件使用详解
Laravel Asset编译怎么配置_Laravel Vite前端构建工具使用
轻松掌握MySQL函数中的last_insert_id()
无锡营销型网站制作公司,无锡网选车牌流程?
php 三元运算符实例详细介绍
Laravel全局作用域是什么_Laravel Eloquent Global Scopes应用指南
用yum安装MySQLdb模块的步骤方法
HTML 中如何正确使用模板变量为元素的 name 属性赋值
Java解压缩zip - 解压缩多个文件或文件夹实例
详解Android——蓝牙技术 带你实现终端间数据传输
Laravel如何处理跨站请求伪造(CSRF)保护_Laravel表单安全机制与令牌校验
Laravel如何集成微信支付SDK_Laravel使用yansongda-pay实现扫码支付【实战】
如何用花生壳三步快速搭建专属网站?
Laravel如何使用Telescope进行调试?(安装和使用教程)
如何确认建站备案号应放置的具体位置?
微信小程序制作网站有哪些,微信小程序需要做网站吗?
动图在线制作网站有哪些,滑动动图图集怎么做?
昵图网官网入口 昵图网素材平台官方入口
如何用免费手机建站系统零基础打造专业网站?
Linux虚拟化技术教程_KVMQEMU虚拟机安装与调优
如何用美橙互联一键搭建多站合一网站?
电商网站制作价格怎么算,网上拍卖流程以及规则?
Laravel如何使用Facades(门面)及其工作原理_Laravel门面模式与底层机制
bootstrap日历插件datetimepicker使用方法
Java Adapter 适配器模式(类适配器,对象适配器)优缺点对比
google浏览器怎么清理缓存_谷歌浏览器清除缓存加速详细步骤
大型企业网站制作流程,做网站需要注册公司吗?
使用C语言编写圣诞表白程序

