日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

winform进度条实现

發(fā)布時(shí)間:2023/12/4 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 winform进度条实现 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

最近要給一個(gè) Winform 項(xiàng)目添加功能,需要一個(gè)能顯示進(jìn)度條的彈窗,還要求能夠中止任務(wù),所以就做了一個(gè),在此做個(gè)記錄總結(jié)。雖然用的是比較老的 Winform 技術(shù),不過其中的原理都是相通的。

loading隨處可見,比如一個(gè)app經(jīng)常會(huì)有下拉刷新,上拉加載的功能,在刷新和加載的過程中為了讓用戶感知到 load 的過程,我們會(huì)使用一些過渡動(dòng)畫來表達(dá)。最常見的比如“轉(zhuǎn)圈圈”,“省略號(hào)”等等。

使用c#做WinFrom開發(fā),要實(shí)現(xiàn)進(jìn)度條效果就需要用到多線程,如果不采用多線程控制進(jìn)度條,窗口很容易假死。

1、設(shè)計(jì)界面,注意需要引用?using?System.Threading;

控件名稱分別為:

progressBar1;label1;textBox1;button1;

2、定義一個(gè)代理,用于更新ProgressBar的值(Value)及在執(zhí)行方法的時(shí)候,返回方法的處理信息。

private?delegate?void?SetPos(int?ipos,string?vinfo);

3、進(jìn)度條值更新函數(shù)

private void SetTextMesssage(int ipos,string vinfo){if (this.InvokeRequired){SetPos setpos = new SetPos(SetTextMesssage);this.Invoke(setpos, new object[] { ipos,vinfo });}else{this.label1.Text = ipos.ToString() + "/1000";this.progressBar1.Value = Convert.ToInt32(ipos);this.textBox1.AppendText(vinfo);}}

4、函數(shù)實(shí)現(xiàn)

private void button1_Click(object sender, EventArgs e){Thread fThread = new Thread(new ThreadStart(SleepT));fThread.Start();}

5、新的線程執(zhí)行函數(shù):

private void SleepT(){for (int i = 0; i < 500; i++){System.Threading.Thread.Sleep(10);SetTextMesssage(100*i/500,i.ToString()+"\r\n");}}

總結(jié)

以上是生活随笔為你收集整理的winform进度条实现的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。