C#实现带百分比的进度条功能示例

本文实例讲述了C#实现带百分比的进度条功能。分享给大家供大家参考,具体如下:

功能需求:

如果程序中会执行一个耗时的计算过程,我想在用户点击按钮后,弹出一个进度条窗口,显示正在执行的进度(最好能带有百分比),执行完成后,进度条窗口关闭,回到主程序窗口。 在关闭子窗口之前父窗体不能点击操作。

实现方法:

先设计Form2进度条窗体,在Form2中央上放ProgressBar控件progressBar1和Label控件label1,代码:

public partial class Form2 : Form
{
 public Form2(int _Minimum,int _Maximum)//带参数,表示进度条的范围的最小值和最大值
 {
   InitializeComponent();
   progressBar1.Maximum=_Maximum;//设置范围最大值
   progressBar1.Value = progressBar1.Minimum = _Minimum;//设置范围最小值
 }
 public void setPos(int value)//设置进度条当前进度值
 {
   if (value < progressBar1.Maximum)//如果值有效
   {
     progressBar1.Value = value;//设置进度值
     label1.Text = (value * 100 / progressBar1.Maximum).ToString() + "%";//显示百分比
   }
   Application.DoEvents();//重点,必须加上,否则父子窗体都假死
 }
 private void Form2_Load(object sender, EventArgs e)
 {
   this.Owner.Enabled = false;//设置父窗体不可用
 }
 private void Form2_FormClosed(object sender, FormClosedEventArgs e)
 {
   this.Owner.Enabled = true;//回复父窗体为可用
 }
}

调用窗体For1m设计,添加Button控件button1,事件代码:

private void button1_Click(object sender, EventArgs e)
{
   Form2 fm = new Form2(0,100);
   fm.Show(this);//设置父窗体
   for (int i = 0; i < 100; i++)
   {
     fm.setPos(i);//设置进度条位置
     Thread.Sleep(100);//睡眠时间为100
   }
   fm.Close();//关闭窗体
}

补充:有朋友说在vs2003中fm.Show(this):是不支持的,那么可以将From2的构造函数多加一个参数:

public Form OwnerForm;
public Form2(int _Minimum,int _Maximum,Form _OwnerForm)//带参数,表示进度条的范围的最小值和最大值
{
   InitializeComponent();
   progressBar1.Maximum=_Maximum;//设置范围最大值
   progressBar1.Value = progressBar1.Minimum = _Minimum;//设置范围最小值
   this.OwnerForm=_OwnerForm;
}
private void Form2_Load(object sender, EventArgs e)
{
   this.OwnerForm.Enabled = false;//设置父窗体不可用
}
private void Form2_FormClosed(object sender, FormClosedEventArgs e)
{
   this.OwnerForm.Enabled = true;//回复父窗体为可用
}

Form1中相应的修改为:

private void button1_Click(object sender, EventArgs e)
{
   Form2 fm = new Form2(0,100,this);
   fm.Show();//设置父窗体
   for (int i = 0; i < 100; i++)
   {
     fm.setPos(i);//设置进度条位置
     Thread.Sleep(100);//睡眠时间为100
   }
   fm.Close();//关闭窗体
}

更多关于C#相关内容感兴趣的读者可查看本站专题:《C#常见控件用法教程》、《C#窗体操作技巧汇总》、《C#数据结构与算法教程》、《C#面向对象程序设计入门教程》及《C#程序设计之线程使用技巧总结》

希望本文所述对大家C#程序设计有所帮助。

(0)

相关推荐

  • asp.net(c#)开发中的文件上传组件uploadify的使用方法(带进度条)

    在Web开发中,有很多可以上传的组件模块,利用HTML的File控件的上传也是一种办法,不过这种方式,需要处理的细节比较多,而且只能支持单文件的操作.在目前Web开发中用的比较多的,可能uploadify(参考http://www.uploadify.com/)也算一个吧,不过这个版本一直在变化,他们的脚本调用也有很大的不同,甚至调用及参数都一直在变化,很早的时候,那个Flash的按钮文字还没法变化,本篇随笔主要根据项目实际,介绍一下3.1版本的uploadify的控件使用,这版本目前还是最新的

  • c#根据文件大小显示文件复制进度条实例

    初学者,照着书上的抄袭制作,但已经理解了里面的意思和应用,并且进行了稍微改善和异常捕捉.这里记录下,以防以后用到这方面的知识点. 窗体设计: code: 复制代码 代码如下: using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.

  • C# Winform下载文件并显示进度条的实现代码

    方法一: 效果如下图所示: 代码如下: 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; namespace WinShowDown { public partial class F

  • C#中常使用进度条的代码

    复制代码 代码如下: using System; using System.Drawing; using System.Collections; using System.ComponentModel; using System.Windows.Forms; using System.Data; using System.Diagnostics; using System.Threading; namespace WindowsApplication2 { /// <summary> /// 

  • C#自定义音乐播放器进度条

    有些时候我们做的程序需要进度条,而vs提供的控件不是我们想要的.先看效果图: 进度条闪烁动画,当然背景可设为Transparent 之前想手绘进度条线条的,结果控件运行时会闪烁,所以直接用了panel控件 源码: [DefaultEvent("ProgressClick")] [ToolboxBitmap(typeof(TrackBar))] public partial class ProcessBar : UserControl { public ProcessBar() { //

  • C#实现带进度条的ListView

    推荐阅读:ListView 百分比进度条(delphi版) 对于已经有的组件,可以直接添加进来,添加后要先运行一下,然后会在工具箱内找到相应控件. 1.首先编写组件,然后将组件添加到工具箱内 编写代码如下: public partial class ListViewEx : System.Windows.Forms.ListView { public ListViewEx() { InitializeComponent(); } //C# listview进度条显示 private Color

  • c#进度条 progressBar 使用方法的小例子

    复制代码 代码如下: using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;using Mes.Core; namespace HCMDoImport{    public partial class ProcessBarForm : B

  • C#实现带百分比的进度条功能示例

    本文实例讲述了C#实现带百分比的进度条功能.分享给大家供大家参考,具体如下: 功能需求: 如果程序中会执行一个耗时的计算过程,我想在用户点击按钮后,弹出一个进度条窗口,显示正在执行的进度(最好能带有百分比),执行完成后,进度条窗口关闭,回到主程序窗口. 在关闭子窗口之前父窗体不能点击操作. 实现方法: 先设计Form2进度条窗体,在Form2中央上放ProgressBar控件progressBar1和Label控件label1,代码: public partial class Form2 : F

  • Angular实现的进度条功能示例

    本文实例讲述了Angular实现的进度条功能.分享给大家供大家参考,具体如下: 项目里需要一个进度条,所以就在网上查找资料学习,看到了网友"雪狼"的代码分享,写的很高明,很精练,很厉害,原文中的代码如下: HTML部分: <div ng-class="{progress: true, 'progress-striped': vm.striped}"> <div ng-class="['progress-bar', vm.style]&qu

  • PHP大文件切割上传并带进度条功能示例

    本文实例讲述了PHP大文件切割上传并带进度条功能.分享给大家供大家参考,具体如下: 前面一篇介绍了PHP大文件切割上传功能,这里再来进一步讲解PHP大文件切割上传并带进度条功能. 项目结构图: 14-slice-upload-fix.html文件: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible&q

  • Android开发使用ProgressBar实现进度条功能示例

    本文实例讲述了Android开发使用ProgressBar实现进度条功能.分享给大家供大家参考,具体如下: 进度条ProgressBar的使用主要有两种方向; 1.使用官方默认样式 2.使用自定义样式 先看效果: 详细代码实现文末给出 关于系统自带样式: 在 style="@android:style 中有许多系统自带样式,大家可以更具自身喜好选择. 如果不选择 style 系统会默认使用上图中红色的样式. 关于自定义样式: 这里我们最好看看源码 很容易理解 主要分为三个部分:当前进度.缓冲进度

  • AngularJS实现进度条功能示例

    本文实例讲述了AngularJS实现进度条功能的方法.分享给大家供大家参考,具体如下: 一.功能描述: ① 通过select标签,可以为进度条选择不同的样式(颜色) ② 进度条的进度通过文本框里面的值改变(也可以快捷的选择几个特定的值) ③ 通过checkbox按钮,控制进度条上的文字是否显示 二.代码实现: <!DOCTYPE html> <html lang="en" ng-app='app'> <head> <meta charset=&

  • bootstrap+jQuery实现的动态进度条功能示例

    本文实例讲述了bootstrap+jQuery实现的动态进度条功能.分享给大家供大家参考,具体如下: 此款进度条实现的功能: 1.利用了bootstrap的进度条组件. a.在最外层的<div>中加入class .progress,在里层<div>加入class .progress-bar从而实现基本的进度条. b.在外层<div>中加入class .progress-striped实现条纹进度条. c.在内层<div>加入class .progress-b

  • php+javascript实现的动态显示服务器运行程序进度条功能示例

    本文实例讲述了php+javascript实现的动态显示服务器运行程序进度条功能.分享给大家供大家参考,具体如下: 经常有这样的业务要处理,服务器上有较多的业务需要处理,需要分批操作,于是就需要一个提示客户现在完成进度的进度条. 这个是php+javascript的进度条. <?php //set_time_limit(0); //注意,如果是安全模式,请不要打开,如果不是安全模式,这个选项可以打开 for ($i = 0; $i < 500; $i++) { $users[] = 'Tom_

  • Android编程基于自定义View实现绚丽的圆形进度条功能示例

    本文实例讲述了Android编程基于自定义View实现绚丽的圆形进度条功能.分享给大家供大家参考,具体如下: 本文包含两个组件,首先上效果图: 1.ProgressBarView1(支持拖动): 2.ProgressBarView2(不同进度值显示不同颜色,不支持拖拽):   代码不多,注释也比较详细,全部贴上了: (一)ProgressBarView1: /** * 自定义绚丽的ProgressBar. */ public class ProgressBarView1 extends View

  • Android编程实现对话框形式进度条功能示例

    本文实例讲述了Android编程实现对话框形式进度条功能.分享给大家供大家参考,具体如下: MainActivity代码如下: package com.example.myapplication; import android.app.ProgressDialog; import android.content.DialogInterface; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; i

  • js+HTML5 canvas 实现简单的加载条(进度条)功能示例

    本文实例讲述了js+HTML5 canvas 实现简单的加载条(进度条)功能.分享给大家供大家参考,具体如下: <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8"> <title>www.jb51.net canvas实现加载条动画</title> </head> <body> <canv

随机推荐