使用思想:对于消耗时间多的运算,需要通过增加进度条来打消用户的焦虑心情,对于进度条的添加主要是在运行开始的时候进度条开始走动,运行完毕后,进度条读完,对于消耗时间多的运算主要是循环上面浪费时间,因此首先需要计算出循环的次数,接下来就可以按照每个循环增加一次了,有些可以直接读取循环次数,对于不能直接读取的,可以先建立一个循环只是用来计算次数的,由于没有其他运算,因此速度很快,几乎可以忽略的!(c# 进度条进度的控制_百度知道)
1. 表示 Windows 进度栏控件。
2. ProgressBar 属性:
- Maximum:获取或设置控件范围的最大值。
- Minimum:获取或设置控件范围的最小值。
- Value:获取或设置进度栏的当前位置。10 → 10%
- Step:获取或设置调用 PerformStep 方法增加进度栏的当前位置时所根据的数量。
- MarqueeAnimationSpeed:获取或设置进度块在进度栏内滚动所用的时间段,以毫秒为单位。
- Style:获取或设置在进度栏上指示进度应使用的方式。
//通过设置ProgressBar的最大值,然后没执行一句话,value增加1,即达到了目的! using (SqlConnection conn = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDBFilename=|DataDirectory|\Database1.mdf;Integrated Security=True;User Instance=True")) { conn.Open(); int lines; using (SqlCommand cmd = conn.CreateCommand()) { cmd.CommandText = "select count(*) from city"; lines = Convert.ToInt32(cmd.ExecuteScalar()); } progressBar1.Maximum = lines; using (SqlCommand cmd = conn.CreateCommand()) { cmd.CommandText = "select * from city"; using (SqlDataReader reader = cmd.ExecuteReader()) { while (reader.Read()) { using (StreamWriter streamWriter = File.AppendText(ofd.FileName)) { streamWriter.WriteLine(reader.GetInt32(0).ToString() + "|" + reader.GetString(1) + "|" + reader.GetInt32(2).ToString()); progressBar1.Value++; } } } } }
3. Progress 方法:
- Increment:按指定的数量增加进度栏的当前位置。
- PerformStep:按照 Step 属性的数量增加进度栏的当前位置。