2-4  进度条控件<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

u     本节学习目标:

n         了解进度条控件的基本属性

n         掌握进度条如何控制并显示进度信息

<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />2-4-1 简介

进度条控件主要用于指示某种操作的进度及完成的百分比,其外观是排列在水平条中的一定数目的矩形。在进行数据库读写操作,或者文件的读写复制等操作的时候,该控件经常被用于告之用户进度的完成情况,如图2-8所示。

<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />
2-4 进度条控件
2-8 进度条控件的属性及方法

2-4-2 进度条控件的基本属性

进度条控件是显示用户当前进程的控件,其基本的属性和方法定义如表2-5所示:

属性

说明

Maximum

进度条控件的最大值。默认值为 100

Minimum

进度条控件的最小值。进度条从最小值开始递增,直至达到最大值。默认值为 0

Step

PerformStep 方法应据以增加进度条的光标位置的值。 默认值为 10

Value

进度条控件中光标的当前位置。默认值为 0

方法

说明

Increment

按指定的递增值移动进度条的光标位置

PerformStep

Step 属性中指定的值移动进度条的光标位置

2-5 进度条控件的属性

2-4-3  进度条控件实践操作

1案例学习:通过进度条显示数据库读取的进度信息

从工具箱中将一个进度条控件(progressBar1),一个标签控件(label1,设置其Visible属性为false,初始时候不可视)和按钮控件(button1)拖到Form窗体上,并按照图2-9进行布局:

2-4 进度条控件

2-9  通过进度条显示数据库读取的进度信息布局及演示
用鼠标双击按钮控件(button1),在其鼠标单击事件里加入如下代码:

       private void button1_Click(object sender, EventArgs e)

        {

            //本次为MS SQLserver数据库本机链接,测试数据库为NorthWind,测试的表为Orders

            //默认链接用户名称sa,登录密码为空。

            //请在头部引用MS SQLserver操作类库:using System.Data.SqlClient;

            string sqlstring = "Data Source=(local);Initial Catalog=NorthWind;User ID=sa";

            //数据库连接字符串

            SqlConnection conn = new SqlConnection(sqlstring);

            //数据表查询字符串

            string sql = "select * from Orders";

            //定义SqlCommand对象,命名为cmd

            SqlCommand cmd = new SqlCommand(sql, conn);

            //定义SqlDataAdapter对象,命名为adp

            SqlDataAdapter adp = new SqlDataAdapter();

            //将SQL查询命令结果缓冲至SqlDataAdapter对象

            adp.SelectCommand = cmd;

            //定义DataSet对象,命名为ds

            DataSet ds = new DataSet();

            //将缓冲至SqlDataAdapter对象的数据填充至DataSet对象,进行离线数据处理

            adp.Fill(ds);

            //释放数据库连接资源

            conn.Dispose();

            conn.Close();

            conn = null;

            label1.Visible = true;

            //设置进度条控件属性

            progressBar1.Visible = true;//进度条控件可视

            progressBar1.Minimum = 0;//进度条控件最小值为0

            progressBar1.Maximum = ds.Tables[0].Rows.Count;//进度条控件最大值为读取表内容行数

            progressBar1.BackColor = Color.Red;//进度条控件背景色为红色

            //循环读取数据表内容,读取次数为表内容行数

            for (int i = 0; i < ds.Tables[0].Rows.Count; i++)

            {

                progressBar1.Value++;//每次读取数据表,进度条值加1

                Application.DoEvents();//当前程序处理消息队列内容

                this.label1.Text = progressBar1.Value.ToString();//将进度条当前值显示在标签控件

            }

  }