资源简介
文件导出时进度条显示其导出的进度。利用委托和事件,使窗体避免造成假死状态。是理解进度条比较好的案例
代码片段和文件信息
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个文件信息
相关资源
- Maya导出Threejs插件
- 使用vue实现excel导入和导出功能
- arcgis按照某一字段批量导出shp
-
使用xslt转化xm
l数据形成word文档导出 - 金山词霸的DIC词典导出程序
- windows运行原理源代码进度条控件
- 一个真正的所见即所得的PB导出EXCEL
- 微信通信协议 获取好友信息 自动发消
- Revit导出JSON数据源代码
- GridView导出到Excel
- 简单环形条格进度条
- 硬盘容量进度条xp美化
- ADF Execl导入导出方法
- CATIA 3D点坐标快速导出EXCEL(适用任何
- Netty+H5实现实时进度条文件上传,支持
- ArcGIS10.2批量导出地图
- DataTables导出CVS Excel PDF
- POI导入Excel并返回校验后的错误文件原
- 金蝶BOS开发之导入导出
- 采用线程方式拷贝文件夹Delphi使用自
- PandaDirectXMaxExporter for 3DS Max 2012 64位
- CityEngine导出的FBX模型在MAX变小
- POI使用Excel模板文件循环输出行并导出
- POI使用word模板文件循环输出行并导出
- DataSet 或 DataTable 导出到 Excel
- 2019.4.24_CSDN博客导出工具.zip
- 金山词霸字典提取
- SpringMVC+uploadify实现文件上传带进度条
- tableview连接数据库后导入导出类.zip
- easypoi 模板导出
评论
共有 条评论