双缓冲
this.SetStyle(ControlStyles.DoubleBuffer | ControlStyles.UserPaint | ControlStyles.AllPaintingInWmPaint, true);
this.UpdateStyles();
还有就是局部刷新
Rectangle rect = new Rectangle(new Point(0,0),new Size(50,50));
this.Invalidate(rect);
这两句可以加在属性里,表明只是刷新从坐标(0,0)开始的大小为50,50的区域
不过感觉数据每次都是变化的,,这样做,可能之前画的波形不会被覆盖.
尽可能的缩小波形图的大小,并且延长sleep间隔
比如系统里的进程管理器,迅雷的流量监视,他们的间隔都是1秒.
这对一般用户就已经可以接受了.
用C#.net的GDI+画图,如何实现图像的旋转,比如直线,矩形,椭圆等等,用RotateTransform或者不用都可以~
画“直线,矩形,椭圆”这个是怎么画的???c#.net GDI+里面有相应的函数,那旋转是一样的,你画直线时,需要提供参数,画矩形时也需要提供参数,旋转只不过是参数变量变了而已。求出变量就可以了!
使用GDI是可以实现的,我只说下思路吧,代码自己写吧:
图中效果可以使用Form+图片来实现,其中图片为GDI绘制完后赋值到Form中的,Form可以将背景设置为透明色,只显示图片,许多游戏登陆界面的不规则窗体都是这么做的。
图片的绘制思路:
边框圆边:可以截图后用PS扣出边框以内的圆形图片保存为png格式,背景颜色为空,也就是除了圆以外的地方(图片为矩形)都没有背景色。
中间人物图标:直接抠图
扇形进度条:用GDI里的Graphics.DrawPie(参数……),里面有设置开始角度和结束角度的参数,按你需求设置将圆分为多少份儿(360°),没增加一个进度格(如果分为360份)绘制一个DrawPie并增加一度的开始角度和结束角度,并设置填充颜色。
绘制流程:先DrawImage()绘制圆形边框->绘制DrawPie()->最后绘制人物图片
最后将绘制的图片赋值到form窗体的控件中,将Form窗体控件背景色设为透明色,隐藏窗体标题栏FormBorderStyle设置
具体怎么设置背景透明百度下就有
希望帮到你
#15612062513#
C#的winform编程中,如何实现排版功能 - ******
#燕垂# 如果内容控件被选中 键盘 检测上下左右按键 鼠标 MouseDown 记下鼠标位置 MouseUp再记下位置 比较两个的差值 将内容随之移动 当然 MouseMove也是可以的 但要这样做 一个类变量比如bool b MouseDown 的时候b=true MouseUp为false 当为true的时候内容随MouseMove移动
#15612062513#
如何用C#写一个透明控件?(WinForm程序) - ******
#燕垂# 首先先从System.Windows.Forms.Panel 继承一个自定义控件,然后在控件的构造函数中添加下面的代码 :SetStyle(ControlStyles.UserPaint, true); SetStyle(ControlStyles.SupportsTransparentBackColor, true); this.BackColor = Color.Transparent...
#15612062513#
C#如何制作winform动态曲线图 - ******
#燕垂# 下个微软的chart控件,装好后引到程序中,属性里面设置,就和datagrid差不多,看看就会了
#15612062513#
winform运行中怎么用C# 代码调整窗口位置,特别是怎么居中到屏幕中央??? 设置属性 StartPosion 不行 - ******
#燕垂# 获取当前屏幕分辨率->获取当前窗口大小->计算如果居中的话当前窗口的位置->给当前窗口位置赋值 方法挺笨的,不过可以实现,代码如下,测试通过. int height = System.Windows.Forms.SystemInformation.WorkingArea.Height; int width = ...
#15612062513#
在winform中用C#编程实现菜单栏中的各种功能该怎么编代码啊?我只知道怎么关闭,像打开,保存,工具栏都不 - ******
#燕垂# 什么也不说了,直接代码:打开:OpenFileDialog open = new OpenFileDialog(); open.Filter = "All File(*)|*.*"; open.Title = "打开"; if (open.ShowDialog() == DialogResult.OK) { //这里处理打开文件后代码 } open.Dispose(); 保存:...
#15612062513#
如何使用C#编写获取机器人坐标的winform程序 - ******
#燕垂# private void Form1_Move(object sender, EventArgs e) { this.label1.Text = this.Location.X.ToString() + "," + this.Location.Y.ToString(); } 注意:Form1是窗体类名,label1是Form1窗体里面的一个Label控件,注意这个事件是Move事件,也就是窗口移动事件
#15612062513#
如何用c#winform应用程序调用c++控制台应用程序??? - ******
#燕垂# // 方法1 System.Diagnostics.Process.Start(@"cpp-console.exe", "/1 /2"); // 立即运行 // 方法2 System.Diagnostics.Process process = new System.Diagnostics.Process(); process.StartInfo = new System.Diagnostics.ProcessStartInfo(@"cpp-console.exe", "/1 /2"); process.Start(); // 推迟运行 // 假设cpp-console.exe是你的c++控制台程序,/1 /2是参数
#15612062513#
熟悉C# WinForm程序,了解接口怎么用高手帮我解答一个问题? - ******
#燕垂# 回答你的问题: 1 接口是一种程序规范,接口中的方法必须要去实现,你的那三个文件与接口没有联系,在写面向对象思想的程序时,在涉及到业务逻辑的类设计之前,一般先进行接口设计,也就是先做好基本的框架,在实施过程中,用类直接...
#15612062513#
用C#在winform中如何实现这个效果. - ******
#燕垂# //多个linkLabel同时指向下面两个事件方法 private void linkLabel1_MouseHover(object sender, EventArgs e) { LinkLabel linkLabel = sender as LinkLabel ; this.Text = linkLabel.Text ; } private void linkLabel1_MouseLeave(object sender, EventArgs e) { this.Text ="就绪!"; }
#15612062513#
C#开发的Winform程序 如何进行打包和制作安装程序?谢谢!! - ******
#燕垂# 文件-新建-项目,其他项目类型里的安装和部署,选择安装项目,建立相应层次的文件夹和开始菜单项,运行打包就可以了.