C#使用winform實(shí)現(xiàn)進(jìn)度條效果
本文實(shí)例為大家分享了C#使用winform實(shí)現(xiàn)進(jìn)度條效果的具體代碼,供大家參考,具體內(nèi)容如下
1.例子
2.點(diǎn)擊查詢按鈕代碼
private void button8_Click(object sender, EventArgs e) ? ? ? ? { ? ? ? ? ? ? string orgid = string.Empty; ? ? ? ? ? ? string scbz = string.Empty; ? ? ? ? ? ? if (comboBox7.SelectedIndex == -1) ? ? ? ? ? ? { ? ? ? ? ? ? ? ? orgid = ""; ? ? ? ? ? ? } ? ? ? ? ? ? else ? ? ? ? ? ? { ? ? ? ? ? ? ? ? orgid = comboBox7.SelectedItem.ToString().Substring(0, 6); ? ? ? ? ? ? } ? ? ? ? ? ? if (comboBox8.SelectedIndex == -1) ? ? ? ? ? ? { ? ? ? ? ? ? ? ? scbz = ""; ? ? ? ? ? ? } ? ? ? ? ? ? else ? ? ? ? ? ? { ? ? ? ? ? ? ? ? scbz = comboBox8.SelectedItem.ToString().Substring(0, 1); ? ? ? ? ? ? } ? ? ? ? ? ? Det_SummaryDataContext org = new Det_SummaryDataContext(); ? ? ? ? ? ? var query = from item in org.Peo_EmployeeInfo ? ? ? ? ? ? ? ? ? ? ? ? orderby item.StaID ? ? ? ? ? ? ? ? ? ? ? ? where (string.IsNullOrEmpty(orgid) || item.StaID == orgid) ? ? ? ? ? ? ? ? ? ? ? ? ? ? && (string.IsNullOrEmpty(scbz) || item.SCBZ == scbz) ? ? ? ? ? ? ? ? ? ? ? ? select item; ? ? ? ? ? ? dataGridView4.DataSource = query.ToList(); ? ? ? ? ? ? label16.Text = "共" + dataGridView4.RowCount + "條數(shù)據(jù)"; ? ? ? ? ? ? progressBar1.Value = 0;//初始化進(jìn)度條的值 ? ? ? ? ? ? progressBar1.Minimum = 0; ? ? ? ? ? ? progressBar1.Maximum = dataGridView4.RowCount;//設(shè)置進(jìn)度條范圍 ? ? ? ? }
3.點(diǎn)擊手動(dòng)上傳按鈕代碼
private void button7_Click(object sender, EventArgs e) ? ? ? ? { ? ? ? ? ? ? if (dataGridView4.DataSource == null) ? ? ? ? ? ? { ? ? ? ? ? ? ? ? MessageBox.Show("沒有需要上傳的數(shù)據(jù)", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); ? ? ? ? ? ? } ? ? ? ? ? ? else ? ? ? ? ? ? { ? ? ? ? ? ? ? ? int sumcout = 0; ? ? ? ? ? ? ? ? int upcount = 0; ? ? ? ? ? ? ? ? foreach (DataGridViewRow row in dataGridView4.SelectedRows) ? ? ? ? ? ? ? ? { ? ? ? ? ? ? ? ? ? ? sumcout += 1; ? ? ? ? ? ? ? ? ? ? progressBar1.Value++;//動(dòng)態(tài)顯示進(jìn)度條進(jìn)度 ? ? ? ? ? ? ? ? ? ? Application.DoEvents();//處理當(dāng)前在消息隊(duì)列中的所有windows消息 ? ? ? ? ? ? ? ? ? ? ? string orgid = row.Cells["StaID"].Value.ToString(); ? ? ? ? ? ? ? ? ? ? string empid = row.Cells["EmpID"].Value.ToString(); ? ? ? ? ? ? ? ? ? ? ? Det_SummaryDataContext det = new Det_SummaryDataContext(); ? ? ? ? ? ? ? ? ? ? string cityid = (from sys in det.Base_SystemParameter ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?select sys.CityID).ToList()[0]; ? ? ? ? ? ? ? ? ? ? ? root r = new root(); ? ? ? ? ? ? ? ? ? ? head h = new head(); ? ? ? ? ? ? ? ? ? ? body b = new body(); ? ? ? ? ? ? ? ? ? ? string strxml = string.Empty; ? ? ? ? ? ? ? ? ? ? string restr = string.Empty; ? ? ? ? ? ? ? ? ? ? ServiceReference1.VeptsServiceImplClient vsc = new ServiceReference1.VeptsServiceImplClient(); ? ? ? ? ? ? ? ? ? ? int evl = 0; ? ? ? ? ? ? ? ? ? ? ? var query1 = from ur in det.Peo_TUserRole ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?join ri in det.Peo_RoleInfo on ur.RoleID equals ri.RoleID into A ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?from urri in A.DefaultIfEmpty() ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?select new ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?{ ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?UADID = ur.UADID, ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?RoleID = ur.RoleID, ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?RoleName = urri.RoleName ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?}; ? ? ? ? ? ? ? ? ? ? var query2 = from q in query1 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?join tu in det.Peo_TUserRightRelation on q.UADID equals tu.UADID into B ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?from qtu in B.DefaultIfEmpty() ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?select new ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?{ ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?UADID = q.UADID, ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?RoleID = q.RoleID, ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?RoleName = q.RoleName, ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?EmpID = qtu.EmpID ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?}; ? ? ? ? ? ? ? ? ? ? var query = from q in query2 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? join ei in det.Peo_EmployeeInfo on q.EmpID equals ei.EmpID into C ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? from qei in C.DefaultIfEmpty() ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? where qei.EmpID == empid ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? select new JCZ03 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? { ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? idcardno = qei.IDNumber, ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? tsno = cityid + qei.StaID.Substring(4, 2), ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? personname = qei.EmpName, ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? culturegrade = qei.Educational, ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? workdate = qei.DivisionTime, ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //1站長 2技術(shù)負(fù)責(zé)人 3質(zhì)量負(fù)責(zé)人 4外檢員 5登錄員 6駕控員 7尾氣操作員 8其他 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? jobduty = q.RoleID == "130100002" ? "5" : q.RoleID == "130100003" ? "7" : q.RoleID == "130100004" ? "7" : q.RoleID == "130100005" ? "6" : q.RoleID == "130100006" ? "1" : "8", ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //狀態(tài)(0:未審;1:在崗;2:離職,3 鎖止) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? state = qei.EmpState == "0" ? "1" : "2" ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? }; ? ? ? ? ? ? ? ? ? ? ? List<JCZ03> jcz033 = query.ToList<JCZ03>(); ? ? ? ? ? ? ? ? ? ? h.organ = Properties.Settings.Default.JKBH; ? ? ? ? ? ? ? ? ? ? h.jkxlh = Properties.Settings.Default.JKXLH; ? ? ? ? ? ? ? ? ? ? h.jkid = "JCZ03"; ? ? ? ? ? ? ? ? ? ? b.vehispara = jcz033[0]; ? ? ? ? ? ? ? ? ? ? r.head = h; ? ? ? ? ? ? ? ? ? ? r.body = b; ? ? ? ? ? ? ? ? ? ? strxml = Other.XmlSerialize<root>(r); ? ? ? ? ? ? ? ? ? ? Other.WriteLwLog(strxml);//打印發(fā)送日志 ? ? ? ? ? ? ? ? ? ? restr = System.Web.HttpUtility.UrlDecode(vsc.write(strxml)); ? ? ? ? ? ? ? ? ? ? Other.WriteLwLog(restr,false);//打印接受日志 ? ? ? ? ? ? ? ? ? ? if (!restr.Contains(@"<code>1</code>")) ? ? ? ? ? ? ? ? ? ? { ? ? ? ? ? ? ? ? ? ? ? ? evl += 1; ? ? ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? ? ? ? if (evl == 0) ? ? ? ? ? ? ? ? ? ? { ? ? ? ? ? ? ? ? ? ? ? ? var query3 = from item in det.Peo_EmployeeInfo ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? where item.StaID == orgid && item.EmpID == empid ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? select item; ? ? ? ? ? ? ? ? ? ? ? ? foreach (var item in query3) ? ? ? ? ? ? ? ? ? ? ? ? { ? ? ? ? ? ? ? ? ? ? ? ? ? ? item.SCBZ = "O"; ? ? ? ? ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? ? ? ? ? ? det.SubmitChanges(); ? ? ? ? ? ? ? ? ? ? ? ? upcount += 1;//上傳數(shù)量 成功上傳一條就自增1? ? ? ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? ? ? ? else ? ? ? ? ? ? ? ? ? ? { ? ? ? ? ? ? ? ? ? ? ? ? var query3 = from item in det.Peo_EmployeeInfo ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? where item.StaID == orgid && item.EmpID == empid ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? select item; ? ? ? ? ? ? ? ? ? ? ? ? foreach (var item in query3) ? ? ? ? ? ? ? ? ? ? ? ? { ? ? ? ? ? ? ? ? ? ? ? ? ? ? item.SCBZ = "E"; ? ? ? ? ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? ? ? ? ? ? det.SubmitChanges(); ? ? ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? ? MessageBox.Show(string.Format("選中{0}條數(shù)據(jù),成功上傳{1}條!", sumcout, upcount), "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); ? ? ? ? ? ? } }
4.思路
首先設(shè)置processBar的范圍,該范圍就是要?jiǎng)討B(tài)處理數(shù)據(jù)集的大小。
然后在foreach循環(huán)里設(shè)置進(jìn)度條值自增,即processBar.Value++;
最后加上一句Application.DoEvents(); 用來刷新UI顯示進(jìn)度條進(jìn)度。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
C#實(shí)現(xiàn)調(diào)用迅雷下載的方法
這篇文章主要介紹了C#實(shí)現(xiàn)調(diào)用迅雷下載的方法,非常實(shí)用的一個(gè)技巧,對于進(jìn)行C#程序設(shè)計(jì)有很好的借鑒價(jià)值,需要的朋友可以參考下2014-08-08C# WinForm創(chuàng)建Excel文件的實(shí)例
下面小編就為大家?guī)硪黄狢# WinForm創(chuàng)建Excel文件的實(shí)例。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-01-01C# wpf Canvas中實(shí)現(xiàn)控件拖動(dòng)調(diào)整大小的示例
本文主要介紹了C# wpf Canvas中實(shí)現(xiàn)控件拖動(dòng)調(diào)整大小的示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-08-08C#、.Net中把字符串(String)格式轉(zhuǎn)換為DateTime類型的三種方法
這篇文章主要介紹了C#、.Net中把字符串(String)格式轉(zhuǎn)換為DateTime類型的三種方法,本文總結(jié)了Convert.ToDateTime(string)、Convert.ToDateTime(string, IFormatProvider)、DateTime.ParseExact()三種方法,需要的朋友可以參考下2015-07-07C#字符串與數(shù)值類型、字節(jié)數(shù)組的互相轉(zhuǎn)換實(shí)戰(zhàn)案例
最近由于編程的需要,對C#的類型轉(zhuǎn)換做了一些研究,下面這篇文章主要給大家介紹了關(guān)于C#字符串與數(shù)值類型、字節(jié)數(shù)組的互相轉(zhuǎn)換的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-06-06.net2.0+ Winform項(xiàng)目實(shí)現(xiàn)彈出容器層
在實(shí)際工作中,如果能像菜單一樣彈出自定義內(nèi)容,會(huì)方便很多,比如查詢時(shí),比如下拉列表顯示多列信息時(shí),比如在填寫某個(gè)信息需要查看一些信息樹時(shí)。這個(gè)時(shí)候自定義彈出界面就顯的非常重要了2015-08-08