【问题标题】:Adding a Progress Bar from a simple copy to the C Drive将简单副本中的进度条添加到 C 盘
【发布时间】:2014-03-28 14:24:39
【问题描述】:

我正在使用此代码:

My.Computer.FileSystem.CopyFile(
            "Software\Service Packs\WindowsXP\SP2\WindowsXP-KB835935-SP2-ENU.exe",
            "C:\Service Pack\WindowsXP-KB835935-SP2-ENU.exe")

        Process.Start("C:\Service Pack\WindowsXP-KB835935-SP2-ENU.exe")

这只是将 Windows XP Service Pack 从笔式驱动器复制到上面的 C 驱动器。

我希望在表单中添加一个进度条,并且需要代码来执行此操作。

谢谢,

【问题讨论】:

  • 您的意思是在运行时添加进度条吗?您可以向设计器添加一个,或者只使用类似Dim p as New ProgressBar() p.Parent = Me...等的东西。
  • 由于我上面的代码正在运行,程序在执行代码时冻结。代码成功运行并按我的意愿运行。但我只是想向最终用户显示程序正在复制带有进度条的文件。

标签: vb.net copy progress-bar file-copying


【解决方案1】:

将 ProgressBar 和 Timer 拖到表单中。

Timer1_Tick事件下添加如下代码:

代码与示例

Private Sub Timer1_Tick () Handles Timer1.Tick
      ProgressBar1.Increment (20)
      If ProgressBar1.Value = ProgressBar1.Maximum then
           Timer1.Stop
           'Add things here you want to do when progressbar reaches maximum.  
      End If
End Sub

Private Sub Form1_Load () Handles Mybase.Load
      Timer1.Stop
End Sub

Private Sub Button1_Click () Handles Button1.Click
      Timer1.Start
End Sub

说明

ProgressBar1.Increment 中指定的值表示增加的百分比。值最大时停止增加。

声明Timer1.Start必须添加到您要触发ProgressBar的事件中(不必写在Form_Load事件下)。

希望它能完美运行。

【讨论】:

  • 我确实按照您的建议进行了尝试,但在程序中没有运气:(
  • 您遇到的错误是什么?你的定时器启用了吗?在定时器的属性中搜索。
  • 定时器现已启用,自动隐藏让我忘记了这一点。执行程序时,进度条会一直向上冲到顶部,但在复制文件时什么也不做。我上面的代码是在单击按钮时执行的。我没有收到任何错误,因为它认为它有效。
猜你喜欢
  • 1970-01-01
  • 2021-07-27
  • 2021-12-19
  • 1970-01-01
  • 1970-01-01
  • 2018-04-21
  • 2018-02-27
  • 1970-01-01
  • 2015-08-24
相关资源
最近更新 更多