惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

TaoSecurity Blog
TaoSecurity Blog
Jina AI
Jina AI
雷峰网
雷峰网
月光博客
月光博客
The GitHub Blog
The GitHub Blog
WordPress大学
WordPress大学
B
Blog RSS Feed
美团技术团队
C
CXSECURITY Database RSS Feed - CXSecurity.com
小众软件
小众软件
Security Latest
Security Latest
Microsoft Azure Blog
Microsoft Azure Blog
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
C
Cybersecurity and Infrastructure Security Agency CISA
Last Week in AI
Last Week in AI
A
Arctic Wolf
Latest news
Latest news
Attack and Defense Labs
Attack and Defense Labs
I
Intezer
F
Fortinet All Blogs
罗磊的独立博客
MongoDB | Blog
MongoDB | Blog
Webroot Blog
Webroot Blog
S
Secure Thoughts
Help Net Security
Help Net Security
Apple Machine Learning Research
Apple Machine Learning Research
博客园_首页
V
Visual Studio Blog
P
Proofpoint News Feed
博客园 - 【当耐特】
P
Privacy International News Feed
V
Vulnerabilities – Threatpost
Stack Overflow Blog
Stack Overflow Blog
Know Your Adversary
Know Your Adversary
云风的 BLOG
云风的 BLOG
Hacker News: Ask HN
Hacker News: Ask HN
L
LINUX DO - 最新话题
H
Help Net Security
爱范儿
爱范儿
酷 壳 – CoolShell
酷 壳 – CoolShell
S
SegmentFault 最新的问题
Forbes - Security
Forbes - Security
T
Tailwind CSS Blog
量子位
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
T
Tenable Blog
Cloudbric
Cloudbric
N
News and Events Feed by Topic
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Hugging Face - Blog
Hugging Face - Blog

博客园 - 农村的芬芳

PHP使用第三篇:生成数据库 使用THINKPHP产生的:No database selected [问题 从今天开始记录PHP使用的点点滴滴 留给自个看的工具提示 转xml Oracle 跨库 查询 复制表数据 关于海量数据处理 select into 和 insert into select 两种表复制语句 采用regsvr32注册组件后提示:没有注册 net2005中将list<>数组转换为Table 将对象数组转换成dataset windows 服务操作 转载:XML与DataSet的相互转换类 oracle 日期函数小计 如何创建自定义帐户来运行 ASP.NET 通过ASP.net程序创建域帐户故障 EnterpriseLibrary服务问题 下载文件关闭窗体之解决方法 超级郁闷之问题,请DUDU及各位大位指正错误
近日用到啦progressbar控件,将其用法留一下
农村的芬芳 · 2008-08-06 · via 博客园 - 农村的芬芳

下面的代码示例说明如何直接设置 ProgressBar 值。该代码从数据源中读取记录,并在每次读取数据记录时更新进度栏和标签。该示例要求窗体有一个 Label 控件、一个 ProgressBar 控件以及一个数据表,该数据表中名为

CustomerRow

的行具有

FirstName

Last Name

字段

C#

public void createNewRecords()
{
   // Sets the progress bar's Maximum property to
   // the total number of records to be created.
   progressBar1.Maximum = 20;

   // Creates a new record in the dataset.
   // NOTE: The code below will not compile, it merely
   // illustrates how the progress bar would be used.
   CustomerRow anyRow = DatasetName.ExistingTable.NewRow();
   anyRow.FirstName = "Stephen";
   anyRow.LastName = "James";
   ExistingTable.Rows.Add(anyRow);

   // Increases the value displayed by the progress bar.
   progressBar1.Value += 1;
   // Updates the label to show that a record was read.
   label1.Text = "Records Read = " + progressBar1.Value.ToString();
}

如果要显示按固定时间间隔增长的进度,则可以设置该值,然后调用方法,使 ProgressBar 控件的值按该时间间隔递增。对于计时器以及其他一些您无法以整体的百分比测量进度的方案,这是非常有用的。

使进度栏按固定值递增

  1. 设置 ProgressBar 控件的 MinimumMaximum 值。

  2. 将控件的 Step 属性设置为一个整数,该整数代表进度栏的显示值递增的数量。

  3. 调用 PerformStep 方法,使显示值按 Step 属性中设置的数量进行更改。

    下面的代码示例说明进度栏如何维护复制操作中的文件计数。

    在下面的示例中,当每个文件读入内存时,进度栏和标签都会相应地更新,以反映读取的文件总数。该示例要求窗体有一个 Label 控件和一个 ProgressBar 控件。

  4. public void loadFiles()
    {
       // Sets the progress bar's minimum value to a number representing
       // no operations complete -- in this case, no files read.
       progressBar1.Minimum = 0;
       // Sets the progress bar's maximum value to a number representing
       // all operations complete -- in this case, all five files read.
       progressBar1.Maximum = 5;
       // Sets the Step property to amount to increase with each iteration.
       // In this case, it will increase by one with every file read.
       progressBar1.Step = 1;
    
       // Uses a for loop to iterate through the operations to be
       // completed. In this case, five files are to be copied into memory,
       // so the loop will execute 5 times.
       for (int i = 0; i <= 4; i++)
       {
          // Inserts code to copy a file
          progressBar1.PerformStep();
          // Updates the label to show that a file was read.
          label1.Text = "# of Files Read = " + progressBar1.Value.ToString();
       }
    }
  5. 最后,可以使进度栏的显示值每次递增的数量都是唯一的。这在您记录一系列唯一的操作时非常有用,例如将不同大小的文件写入硬盘,或者按整体的百分比测量进度。

  6. 使进度栏按动态值递增

    1. 设置 ProgressBar 控件的 MinimumMaximum 值。

    2. 调用 Increment 方法,使显示值按指定的整数进行更改。

      下面的代码示例说明在复制操作期间,进度栏如何计算已使用的磁盘空间量。

      在下面的示例中,当每个文件写入硬盘时,进度栏和标签都会相应地更新,以反映可用的硬盘空间量。该示例要求窗体有一个 Label 控件和一个 ProgressBar 控件。

    public void readFiles()
    {
       // Sets the progress bar's minimum value to a number 
       // representing the hard disk space before the files are read in.
       // You will most likely have to set this using a system call.
       // NOTE: The code below is meant to be an example and 
       // will not compile.
       progressBar1.Minimum = AvailableDiskSpace();
       // Sets the progress bar's maximum value to a number 
       // representing the total hard disk space.
       // You will most likely have to set this using a system call.
       // NOTE: The code below is meant to be an example 
       // and will not compile.
       progressBar1.Maximum = TotalDiskSpace();
    
       // Uses a for loop to iterate through the operations to be
       // completed. In this case, five files are to be written
       // to the disk, so it will execute the loop 5 times.
       for (int i = 1; i<= 5; i++)
       {
          // Insert code to read a file into memory and update file size.
          // Increases the progress bar's value based on the size of 
          // the file currently being written.
          progressBar1.Increment(FileSize);
          // Updates the label to show available drive space.
          label1.Text = "Current Disk Space Used = " + progressBar1.Value.ToString();
       }
    }