c_23929427 发布留言 2008-9-8 15:17
如何实现:进度条显示加载数据状态
如题
(winform中)在加载大量数据时 为了人性化些想在界面上加个进度条显示加载数据的进度 希望知道的朋友指点一二 谢谢
论坛中有过progressbar的使用,可是本人比较愚钝 不知道progressbar怎么和其他空间配合使用,比如说显示加载数据时的进度、复制文件的进度等
[ 本帖最后由 c_23929427 于 2008-9-8 15:20 编辑 [/it]]
c_23929427 发布留言 2008-9-8 17:52
没人回答... [em02]
下面的代码本人觉得比较傻也不知道能不能满足需求,有没有比较好的呀
private void GetData()
{
string strConn = "Data Source=.;Initial Catalog=dbXXX;User ID=sa;pwd=123456";
SqlConnection con = new SqlConnection(strConn);
SqlDataAdapter da = new SqlDataAdapter("select * from tableX", con);
DataSet ds = new DataSet();
da.Fill(ds);
int count = ds.Tables[0].Rows.Count;
progressBar1.Minimum = 0;
progressBar1.Maximum = 100;
progressBar1.BackColor = Color.Green;
for (int i = 0; i < count; i++) //为了能看出效果 用for循环来减低速度
{
for (int j = 0; j < 1000; j++)
{
if (Convert.ToInt32(ds.Tables[0].Rows.ToString()) > 20)
cc++;
}
progressBar1.Value = ((i + 1) * 100 / count);
}
dataGridView1.DataSource = ds.Tables[0];
}
szy345 发布留言 2008-9-8 18:57
实在不知道,就想一个最笨的方法:
加入一个 label 作为进度条 w_lab ,在 label 上再加一个 label1 作为目前已加载的进度 w_lab1
开始 w_lab1 和 w_lab 的左边对齐,并且 w_lab1 的长度为0,颜色为其他红色,蓝色等等,随便,只要不和 w_lab 颜色一样皆可,
然后就要取总记录数为 len_recno,
已经加载的记录数为 len_rec,
在循环里设置w_lab1.length = len_rec/len_recno * w_lab.length
完成!
明白?[tk05]
页: [1]