2-4 进度条控件
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-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-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();//将进度条当前值显示在标签控件
}
}
|
转载于:https://blog.51cto.com/qianshao/208653