资源简介
文件导出时进度条显示其导出的进度。利用委托和事件,使窗体避免造成假死状态。是理解进度条比较好的案例

代码片段和文件信息
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.Threading;
namespace ProgressBarTest
{
public partial class Catch : Form
{
public Catch()
{
InitializeComponent();
}
#region 用户变量
Point DownPoint = Point.Empty; //记录按下鼠标时的坐标
bool CatchFinished = false; //表示是否完成截图
bool CatchStart = false; //表示截图开始
Bitmap originBmp; //用来保存原始的图像
Rectangle CatchRect; //用来保存截图的矩形
#endregion
private void Catch_Load(object sender EventArgs e)
{
this.Setstyle(Controlstyles.OptimizedDoubleBuffer | Controlstyles.AllPaintingInWmPaint | Controlstyles.UserPaint true);
this.Updatestyles();
Bitmap CatchBmp = new Bitmap(Screen.AllScreens[0].Bounds.Width Screen.AllScreens[0].Bounds.Height);//新建一个和屏幕大小相同的图片
this.BackgroundImage = CatchBmp;
originBmp = new Bitmap(this.BackgroundImage);
}
private void Catch_MouseClick(object sender MouseEventArgs e)
{
if (e.Button == MouseButtons.Right)
{
this.DialogResult = DialogResult.OK;
this.Close();
}
}
private void Catch_MouseDown(object sender MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
if (!CatchStart)
{
CatchStart = true;
DownPoint = new Point(e.X e.Y);
}
}
}
private void Catch_MouseMove(object sender MouseEventArgs e)
{
if (CatchStart)
{//如果捕捉开始
Bitmap destBmp = (Bitmap)originBmp.Clone();//新建一个图片对象,并让它与原始图片相同
Point newPoint = new Point(DownPoint.X DownPoint.Y);//获取鼠标的坐标
Graphics g = Graphics.FromImage(destBmp);//在刚才新建的图片上新建一个画板
Pen p = new Pen(Color.Blue 1);
int width = Math.Abs(e.X - DownPoint.X) height = Math.Abs(e.Y - DownPoint.Y);//获取矩形的长和宽
if (e.X < DownPoint.X)
{
newPoint.X = e.X;
}
if (e.Y < DownPoint.Y)
{
newPoint.Y = e.Y;
}
CatchRect = new Rectangle(newPoint new Size(width height));//保存矩形
g.DrawRectangle(p CatchRect);//将矩形画在这个画板上
g.Dispose();//释放目前的这个画板
p.Dispose();
Graphics g1 = this.CreateGraphics();//重新新建一个Graphics类
//如果之前那个画板不释放,而直接g=this.CreateGraphics()这样的话无法释放掉第一次创建的g因为只是把地址转到新的g了.如同string一样
g1 = this.CreateGraphics();//在整个全屏窗体上新建画板
g1.DrawImag
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 73761344 2012-05-28 21:00 Works\bin\Debug\FileTxt.txt
文件 176 2012-03-03 16:53 Works\bin\Debug\MyFile.bin
文件 14848 2012-07-24 14:43 Works\bin\Debug\ProgressBarTest.exe
文件 26112 2012-07-24 14:43 Works\bin\Debug\ProgressBarTest.pdb
文件 14328 2012-07-24 14:41 Works\bin\Debug\ProgressBarTest.vshost.exe
文件 490 2007-07-21 02:33 Works\bin\Debug\ProgressBarTest.vshost.exe.manifest
文件 18944 2012-03-12 16:02 Works\bin\Debug\进度条测试.exe
文件 44544 2012-03-12 16:02 Works\bin\Debug\进度条测试.pdb
文件 490 2007-07-21 02:33 Works\bin\Debug\进度条测试.vshost.exe.manifest
文件 6689 2012-05-21 11:59 Works\Catch.cs
文件 3328 2012-05-21 11:59 Works\Catch.Designer.cs
文件 5814 2012-05-21 11:59 Works\Catch.resx
文件 7230 2012-05-18 15:01 Works\ExcelReport.cs
文件 9998 2012-05-18 15:01 Works\ExcelReport.Designer.cs
文件 8020 2012-05-18 15:01 Works\ExcelReport.resx
文件 2014 2012-05-22 18:08 Works\GDITest.cs
文件 1583 2012-05-18 17:33 Works\GDITest.Designer.cs
文件 5814 2012-05-18 17:33 Works\GDITest.resx
文件 1354 2012-07-24 14:43 Works\obj\Debug\ProgressBarTest.csproj.FileListAbsolute.txt
文件 853 2012-07-24 14:42 Works\obj\Debug\ProgressBarTest.csproj.GenerateResource.Cache
文件 180 2012-07-24 14:42 Works\obj\Debug\ProgressBarTest.ExcelReport.resources
文件 14848 2012-07-24 14:43 Works\obj\Debug\ProgressBarTest.exe
文件 26112 2012-07-24 14:43 Works\obj\Debug\ProgressBarTest.pdb
文件 180 2012-07-24 14:42 Works\obj\Debug\ProgressBarTest.Properties.Resources.resources
文件 4608 2012-03-12 16:10 Works\obj\Debug\TempPE\Properties.Resources.Designer.cs.dll
文件 757 2012-03-12 16:02 Works\obj\Debug\进度条测试.csproj.FileListAbsolute.txt
文件 990 2012-03-12 15:30 Works\obj\Debug\进度条测试.csproj.GenerateResource.Cache
文件 18944 2012-03-12 16:02 Works\obj\Debug\进度条测试.exe
文件 44544 2012-03-12 16:02 Works\obj\Debug\进度条测试.pdb
文件 180 2012-03-12 10:31 Works\obj\Debug\进度条测试.Properties.Resources.resources
............此处省略25个文件信息
相关资源
- AsyncTask文件控制暂停和继续,在状态
- Php 导出数据为EXCEL程序
- 上传大文件并显示进度条控件实例
-
AutoCAD ob
jectARX二次开发实例-状态栏 - VS六种配色方案(工具-导入和导出设
- vue实现导出Excel的两个js文件-Blob+Exp
- 微信群成员导出工具.zip
- swift-swift版本的简易WKWebview浏览器带加
- delphi 自定义消息窗口和进度条窗口,
- Delphi中导出到Excel的程序: DBGridToEx
- Outlook联系人导出为Vcard格式工具
- MSProject文件导入导出
- 万能华为MML参数导出工具_0.85beta
- qt_ffmpeg_mp4_export_and_import.zip
- 数据库大量数据导出Excel
- 人事档案管理系统 破解版 功能强大
- Baidu Exporter For Chrome 0.8.8
- 年会抽奖程序,3D 球体抽奖,支持奖
- Project导出成Excel的工具
- NET Reflector 8.3破解版自带代码导出
- 实现了监控复制文字微信号等次数统
- panda插件201264位 3DMAX转换.x文件工具把
- EndNote - IEEE格式参考文献导出
- 导出导入BIOS配置symcmos
- .net导入导出Excel文件
- poi导出导入封装使用注解建立实体与
- (改进版本)利用poi读取word模板文件
- 导出数据库数据到Excel
- QQ群号码批量导出
- Axure web 元件库 27类内容导航、进度条
评论
共有 条评论