首页 新闻 搜索 专区 学院

进度条toolStripProgressBar

0
悬赏园豆:10 [已关闭问题] 关闭于 2016-09-19 15:54

 

现在我通过30%~100%的按钮可以直接显示进度,即:按30%按钮,进度条就会到30%。这儿是通过当前窗体的Click事件直接设置。

但是我想另外实现的是通过在保存按钮的Click事件中调用其他Class里的SaveAll()事件来保存。

   public partial class Form1 : Form
    {       
        public Form1()
        {
            InitializeComponent();
            toolStripProgressBar_save.Minimum = 0;
            toolStripProgressBar_save.Maximum = 100;
            toolStripProgressBar_save.Step = 5;
        }

        #region 不涉及数据传输

        private void button_30_Click(object sender, EventArgs e)
        {
            if (toolStripProgressBar_save.Value < 30)
            {
                for(int i=0;i<6;i++)
                {
                    toolStripProgressBar_save.PerformStep();
                }
            }
            toolStripLabel_save.Text = "30%";
        }

        private void button_60_Click(object sender, EventArgs e)
        {
            if (toolStripProgressBar_save.Value < 60)
            {
                for (int i = 0; i < 6; i++)
                {
                    toolStripProgressBar_save.PerformStep();
                }
            }
            toolStripLabel_save.Text = "60%";
        }

        private void button_100_Click(object sender, EventArgs e)
        {
            if (toolStripProgressBar_save.Value < 100)
            {
                for (int i = 0; i < 8; i++)
                {
                    toolStripProgressBar_save.PerformStep();
                }               
            }
            toolStripLabel_save.Text = "Complete!";
        }
        #endregion


        private void button_save_Click(object sender, EventArgs e)
        {
            Save.Singleton().SaveAll();
        }

我想调用Save类里的SaveAll事件来显示进度条:失败了,感觉就是这个事件和toolStripProgressBar_save没有关联上,这个地方不知道怎么办......

   public class Save
    {
        private static Save _instance = null;

        Form1 n = new Form1();
        

        public void SaveAll()
        {
            n.toolStripProgressBar_save.Minimum = 0;
            n.toolStripProgressBar_save.Maximum = 100;
            n.toolStripProgressBar_save.Value = 0;
            n.toolStripProgressBar_save.Step = 5;

            #region 保存过程-与单独按钮是一样的

            if (n.toolStripProgressBar_save.Value < 30)
            {
                for (int i = 0; i < 6; i++)
                {
                    n.toolStripProgressBar_save.PerformStep();
                }
            }
            n.toolStripLabel_save.Text = "30%";
            Thread.Sleep(100);

            if (n.toolStripProgressBar_save.Value < 60)
            {
                for (int i = 0; i < 6; i++)
                {
                    n.toolStripProgressBar_save.PerformStep();
                }
            }
            n.toolStripLabel_save.Text = "60%";
            Thread.Sleep(100);

            if (n.toolStripProgressBar_save.Value < 100)
            {
                for (int i = 0; i < 8; i++)
                {
                    n.toolStripProgressBar_save.PerformStep();
                }
            }
            n.toolStripLabel_save.Text = "100%";
            Thread.Sleep(100);
            #endregion

        }
        
        public static Save Singleton()
        {
            if (_instance == null)
            {
                _instance = new Save();
            }
            return _instance;
        }
    }

 

多多陪着小五的主页 多多陪着小五 | 初学一级 | 园豆:126
提问于:2016-09-19 14:50
< >
分享
所有回答(2)
0

有调用这个单例么?

hahanonym | 园豆:1460 (小虾三级) | 2016-09-19 15:07

我也不清楚,所以来问问,调试的时候是没有问题,但是就是显示不出来进度.....

支持(0) 反对(0) 多多陪着小五 | 园豆:126 (初学一级) | 2016-09-19 15:10

@可达鸭要进化:

二次元懵逼

每个方法需要被调用才执行。你上面的执行是通过按钮触发调用执行

下面的saveall方法没有调用是不会自动执行的

支持(0) 反对(0) hahanonym | 园豆:1460 (小虾三级) | 2016-09-19 15:13

@hahanonym: saveall方法放在了保存按钮的click事件里了,是可以执行的。但是按了保存按钮,界面上的进度条是没有变化的。但是我调试的时候发现这个saveall是可以执行的。

所以现在的问题就是按了保存按钮,界面上的无变化,感觉没有关联上。

支持(0) 反对(0) 多多陪着小五 | 园豆:126 (初学一级) | 2016-09-19 15:17

@可达鸭要进化: 你在一个form上点击执行,又new一个form去执行进度条变化,肯定没关联咯

要么把form对象传到save里面去,要么new出的新form  show出来就能看到了

支持(0) 反对(0) hahanonym | 园豆:1460 (小虾三级) | 2016-09-20 09:51
0

查找当前打开的窗口,找到了当前的窗口就可以了!

 

多多陪着小五 | 园豆:126 (初学一级) | 2016-09-19 15:52
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册