C# Winform弹出一个模式窗口来显示进度条

更新时间:2023-06-13 03:11:41 阅读: 评论:0

最近看了好多人问这方面的问题,以前我也写过一篇blog
我的博客:olivia910319.
里面说了如何在子线程中控制进度条。但目前大多数环境,需要弹出模式窗口,来显示进度条,那么只需要在原先的基础上稍作修改即可。
首先是进度条窗体,需要在上面添加进度条,然后去掉ControlBox。除此外,还要增加一个方法,用来控制进度条的增加幅度,具体如下:
/// <summary>

    /// Increa process bar

    小学生环保演讲稿/// </summary>


    /// <param name="nValue">the value incread</param>

    /// <returns></returns>

    public bool Increa( int nValue )

    {

        if( nValue > 0 )

        {


            if( prcBar.Value + nValue < prcBar.Maximum )

basis            {

                prcBar.Value += nValue;

                return true;

            }

            el


            {

                prcBar.Value = prcBar.Maximum;

                this.Clo();

                return fal;

            }

        }


        return fal;

    }
接着就是主窗体了,如何进行操作了,首先需要定义两个私有成员,一个委托。其中一个私有成员是保存当前进度条窗体对象,另一个是保存委托方法(即增加进度条尺度),具体如下:
童话故事mp3    private frmProcessBar myProcessBar = null;

    private delegate bool IncreaHandle( int nValue );

    private IncreaHandle myIncrea = null;
接着要在主窗体中提供函数来打开进度条窗体,如下:
连词    /// <summary>

    /// Open process bar window

    /// </summary>

    private void ShowProcessBar()

    {

        myProcessBar = new frmProcessBar();



86届奥斯卡颁奖典礼        // Init increa event

        myIncrea = new IncreaHandle( myProcessBar.Increa );

        myProcessBar.ShowDialog();

        myProcessBar = null;

    }responsiblefor
那么现在就可以开始创建线程来运行,具体如下:
    /// <summary>


    /// Sub thread function

    /// </summary>

    料理鼠王英文版private void ThreadFun()

    {

        MethodInvoker mi = new MethodInvoker( ShowProcessBar );

        this.BeginInvoke( mi );
craze


        Thread.Sleep( 1000 );//Sleep a while to show window


        bool blnIncread = fal;

        object objReturn = null;


        do

        {


            Thread.Sleep( 50 );

            objReturn = this.Invoke( this.myIncrea,

                new object[]{ 2 } );

            blnIncread = (bool)objReturn ;

        }

        while( blnIncread );


    }
chinamobile
    注意以上,在打开进度条窗体和增加进度条进度的时候,一个用的是BeginInvoke,一个是Invoke,这里的区别是BeginInvoke不需要等待方法运行完毕,而Invoke是要等待方法运行完毕。还有一点,此处用返回值来判断进度条是否到头了,如果需要有其他的控制,可以类似前面的方法来进行扩展。
启动线程,可以如下:
Thread thdSub = new Thread( new ThreadStart( ThreadFun ) );

thdSub.Start();
这样,一个用模式打开进度条窗体就做完了。以上介绍的是C# Winform如何弹出一个模式窗口来显示进度条,希望对你有所帮助。
财务培训机构
参考博文:/csharpspace/10659r1860.shtml

本文发布于:2023-06-13 03:11:41,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/78/941903.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:进度条   需要   方法   窗体
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图