vb中关于进度条progressbar的问题
'vb.net代码
Public Class Form_ScanDir
Public Sub New()
MyBase.New()
' 此调用是 Windows 窗体设计器所必需的。
InitializeComponent()
' 在 InitializeComponent() 调用之后添加任何初始化。
End Sub
Public Enum ScanMode
DirMode
FileMode
End Enum
Public Enum ListInfo
ListDir
ListFile
End Enum
Dim _ScanMode As ScanMode
Dim _ListMode As ListInfo
Private Sub Button_ListDir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button_ListDir.Click
If _ScanMode = ScanMode.DirMode Then
ProgressBar_Press.Maximum = 1
ProgressBar_Press.Value = 0
CountDir(TextBox_RootDir.Text)
If _ListMode = ListInfo.ListDir Then
ListDir(TextBox_RootDir.Text)
Else
ListFileFromDir(TextBox_RootDir.Text)
'这种模式下,有可能系统中的某些文件夹没有权限操作,只能手工最大化.我的WIN7系统总是有五个系统文件夹无法读取.
ProgressBar_Press.Value = ProgressBar_Press.Maximum
End If
Else
ProgressBar_Press.Maximum = 0
ProgressBar_Press.Value = 0
CountFile(TextBox_RootDir.Text)
ListFileFromFile(TextBox_RootDir.Text)
End If
End Sub
Public Sub CountDir(ByVal PressDir As String)
Try
Dim DDL As String() = IO.Directory.GetDirectories(PressDir)
ProgressBar_Press.Maximum += DDL.Count
Array.ForEach(DDL, AddressOf CountDir)
Catch ex As Exception
' DirCnt += 1
End Try
End Sub
Public Sub ListDir(ByVal PressDir As String)
Try
ProgressBar_Press.Value += 1
ListBox_AllDir.Items.Add(PressDir)
Dim DDL As String() = IO.Directory.GetDirectories(PressDir)
Array.ForEach(DDL, AddressOf ListDir)
Catch ex As Exception
' ListBox_AllDir.Items.Add(String.Format("===== ScanError:{0}", PressDir))
End Try
End Sub
Public Sub CountFile(ByVal PressDir As String)
Try
Dim DDL As String() = IO.Directory.GetDirectories(PressDir)
Dim DDF As String() = IO.Directory.GetFiles(PressDir)
ProgressBar_Press.Maximum += DDF.Count
Array.ForEach(DDL, AddressOf CountFile)
Catch ex As Exception
' DirCnt += 1
End Try
End Sub
Public Sub ListFileFromFile(ByVal PressDir As String)
Try
Dim DDL As String() = IO.Directory.GetDirectories(PressDir)
Dim DDF As String() = IO.Directory.GetFiles(PressDir)
For Each SS As String In DDF
ProgressBar_Press.Value += 1
ListBox_AllDir.Items.Add(SS)
Next
Array.ForEach(DDL, AddressOf ListFileFromFile)
Catch ex As Exception
End Try
End Sub
Public Sub ListFileFromDir(ByVal PressDir As String)
Try
Dim DDL As String() = IO.Directory.GetDirectories(PressDir)
Dim DDF As String() = IO.Directory.GetFiles(PressDir)
ProgressBar_Press.Value += 1
For Each SS As String In DDF
ListBox_AllDir.Items.Add(SS)
Next
Array.ForEach(DDL, AddressOf ListFileFromDir)
Catch ex As Exception
End Try
End Sub
Private Sub Button_SelDir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button_SelDir.Click
Using FDD As FolderBrowserDialog = New FolderBrowserDialog() With {.ShowNewFolderButton = False, _
.Description = "请选择一个作为根的文件夹", .SelectedPath = TextBox_RootDir.Text}
If FDD.ShowDialog() = Windows.Forms.DialogResult.OK Then
TextBox_RootDir.Text = FDD.SelectedPath.ToUpper
End If
End Using
End Sub
Private Sub RadioButton_DirMode_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) _
Handles RadioButton_DirMode.CheckedChanged, RadioButton_FileMode.CheckedChanged
If RadioButton_DirMode.Checked = True Then
_ScanMode = ScanMode.DirMode
Else
_ScanMode = ScanMode.FileMode
RadioButton_ListFile.Checked = RadioButton_FileMode.Checked
End If
RadioButton_ListDir.Enabled = RadioButton_DirMode.Checked
RadioButton_ListFile.Enabled = RadioButton_DirMode.Checked
'上面的可用性是段是不是较难懂?////
'如果选择目录搜索的话,可以列表文件与文件夹.
'而如果选择文件搜索的话,只能列表文件,而不能列表文件夹.
End Sub
Private Sub RadioButton_ListDir_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) _
Handles RadioButton_ListDir.CheckedChanged, RadioButton_ListFile.CheckedChanged
If RadioButton_ListDir.Checked = True Then
_ListMode = ListInfo.ListDir
Else
_ListMode = ListInfo.ListFile
End If
End Sub
End Class
VB progressbar问题
建一个Command1,ProgressBar1,Timer1,代码如下。
===================
Dim a As Long, t As Long
Private Sub command1_click()
Timer1.Enabled = True
t = Val(Text1.Text)
a = t
End Sub
Private Sub Form_Load()
Timer1.Interval = 1000
Timer1.Enabled = False
End Sub
Private Sub timer1_timer()
a = a - 1
Text1.Text = Str(a)
ProgressBar1.Value = (t - a) / t * 100
If a = 0 Then
Timer1.Enabled = False
Exit Sub
End If
End Sub
如何用纯CSS3制作进度条
1、写一个样式为.containe的div用来包含进度条,其次是用样式为.title的div来包裹标题。 2、接下来,添加样式为.bar的di来包含填充和未填充的进度条样式。最后,在.bar里添加样式为.bar-unfill 和.bar-fill的span标签。Plain 3.简单的进度条的CSS代码.container 类里将 width 定义为 30% 使进度条能够自适应。放一些简单的 border-radius 之类的属性在我们的 .title 类里以修改顶部和底部的左边的边框弧度,创建一个简单明了的平板式设计。.container {width:30%;margin:0 auto}.title {background:#545965;color:#fff;padding:15px;float:left;position:relative;-webkit-border-top-left-radius:5px;-webkit-border-bottom-left-radius:5px;-moz-border-radius-topleft:5px;-moz-border-radius-bottomleft:5px;border-top-left-radius:5px;border-bottom-left-radius:5px}4.首先建一个白色的背景.bar-unfill {height:15px;display:block;background:#fff;width:100%;border-radius:8px}5.定义进度条的样式,先令他的宽度为 100% ,因为这也会应用于定义和未定义的部分。所以在我们的 .bar-fill 的类里,令他的宽度为 0 作为起始的宽度,添加CSS3的 transition 属性使动画效果更加流畅,最后,我们将添加CSS3里的 animation 属性,定义动画的名字,和 duration 和 animation-iteration-count 属性。.bar-fill {height:15px;display:block;background:#45c9a5;width:0;border-radius:8px;-webkit-transition:width .8s ease;-moz-transition:width .8s ease;transition:width .8s ease;-webkit-animation:progressbar 7s infinite;animation:progressbar 7s infinite}6.使用CSS3里的 @keyframe 规则来设置宽度从 0 变化到 100% 。你也能定制你自己喜欢的变化。@-webkit-keyframes progressbar { from {width:0}to {width:100%}}/* Standard syntax */@keyframes progressbar {from {width:0}to {width:100%}}7.条纹进度条,应该把 .bar-fill 重新命名为 .bar-fill-stripes 。使用 backgrou-image 属性里的 linear-gradient 同时声明它的颜色。剩余的CSS3动画效果也是和上述相同,看下面的代码:.bar-fill-stripes {height:15px;display:block;background:#e74c3c;width:0;border-radius:8px;background-image:linear-gradient(-45deg,rgba(255,255,255,.2) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.2) 50%,rgba(255,255,255,.2) 75%,transparent 75%,transparent);-webkit-transition:width .8s ease;-moz-transition:width .8s ease;transition:width .8s ease;-webkit-animation:progressbar 7s infinite;animation:progressbar 7s infinite}追踪Tracker8.最后产生动画效果.track-wrap {position:relative;top:-18px;-webkit-animation:progressbar2 7s infinite;animation:progressbar2 7s infinite}.track {height:20px;display:block;background:#e74c3c;width:20px;border-radius:10px;position:relative;left:-12px}@-webkit-keyframes progressbar2 {from {left:0}to {left:100%}}/* Standard syntax */@keyframes progressbar2 {from {left:0}to {left:100%}}