none
progressBar tekrar başlatma RRS feed

  • Soru

  • void ProgressBarBaslat()
            {
    
                for (i = 0; i <= 5061; i += 1)
                {
                    progressBar1.Dispatcher.BeginInvoke((ThreadStart)delegate()
                    {
    
    
                        progressBar1.Value = i;
    
                      
                    });
                    Thread.Sleep(10);
                   
                }
           }
    private void PhoneApplicationPage_Loaded(object sender, RoutedEventArgs e)
            {
    
    
    
                
                progressBar1.Maximum = 5100;
                Thread thread = new Thread(new ThreadStart(ProgressBarBaslat));
                thread.Start();
                
    
            }
    private void progressBar1_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
            {
                if (progressBar1.Value == 500)
                {
                  
                    MessageBox.Show("Bitti");
                   ProgressBarBaslat();
                }
                
               
            }


    burda progressBarın değeri eğer 5060 ise bitti mesajını verip progress barı tekrar başlatmak istiyorum ama bitürlü yapamadım ...
    • Düzenleyen Aithusa 15 Eylül 2012 Cumartesi 18:58
    15 Eylül 2012 Cumartesi 18:58

Yanıtlar

  • Bir an WPF uygulaması sanmışım. Şu şekilde dener misin?

    BackgroundWorker worker = new BackgroundWorker();
            public MainPage()
            {
                InitializeComponent();
                Loaded += MainPage_Loaded;
                ProgressBar1.Maximum = 5060;            
            }        
            void MainPage_Loaded(object sender, RoutedEventArgs e)
            {
                
                worker.DoWork += worker_DoWork;            
                worker.RunWorkerCompleted += worker_RunWorkerCompleted;           
                worker.RunWorkerAsync();
            }
    
            void worker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
            {
                if (MessageBox.Show("Tamamlandı!Tekrar başlasın mı?", "Uyarı", MessageBoxButton.OKCancel) == MessageBoxResult.OK)
                {
                    ProgressBar1.Dispatcher.BeginInvoke((ThreadStart)delegate()
                    {
                        ProgressBar1.Value = 0;
                    });
                    worker.RunWorkerAsync();
                }
            }        
    
            void worker_DoWork(object sender, DoWorkEventArgs e)
            {
                for (int i = 0; i <= 5060; i += 1)
                {
                    ProgressBar1.Dispatcher.BeginInvoke(()=>
                    {
                        ProgressBar1.Value = i;
                    });
                    Thread.Sleep(10);
    
                }    
            }
    16 Eylül 2012 Pazar 15:11
    Moderatör

Tüm Yanıtlar

  • Mesajı başlattıktan sonra ikinci kez çalıştırmak mı istiyorsun yoksa döngü halinde sürekli bu işlemi mi yaptırmak istiyorsun?
    16 Eylül 2012 Pazar 10:24
    Moderatör
  • mesaj başlattıntan sonra mesaj pencerisini kapatınce progressbar tkrar başlamış olması gerekiyo
    16 Eylül 2012 Pazar 12:07
  • public delegate void ProgressDelegate();
            void MainWindow_Loaded(object sender, RoutedEventArgs e)
            {
                progressBar1.Minimum = 0;
                progressBar1.Maximum = 100;
                Task tsk = Task.Factory.StartNew(() =>
                {
                    StartProcess();
                }).ContinueWith(t => { MessageBox.Show("Tamamlandı"); StartProcess(); });
            }
    
            private void StartProcess()
            {
                Dispatcher.BeginInvoke(new ProgressDelegate(() => { progressBar1.Value = 0; }), null);
                for (double i = progressBar1.Minimum; i < progressBar1.Maximum; i++)
                {
                    Dispatcher.Invoke(new ProgressDelegate(() => { progressBar1.Value++; }), null);
                    Thread.Sleep(50);
                }
            }
    16 Eylül 2012 Pazar 12:49
    Moderatör
  • Hata veriyo ??*

    16 Eylül 2012 Pazar 13:11
  • Bir an WPF uygulaması sanmışım. Şu şekilde dener misin?

    BackgroundWorker worker = new BackgroundWorker();
            public MainPage()
            {
                InitializeComponent();
                Loaded += MainPage_Loaded;
                ProgressBar1.Maximum = 5060;            
            }        
            void MainPage_Loaded(object sender, RoutedEventArgs e)
            {
                
                worker.DoWork += worker_DoWork;            
                worker.RunWorkerCompleted += worker_RunWorkerCompleted;           
                worker.RunWorkerAsync();
            }
    
            void worker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
            {
                if (MessageBox.Show("Tamamlandı!Tekrar başlasın mı?", "Uyarı", MessageBoxButton.OKCancel) == MessageBoxResult.OK)
                {
                    ProgressBar1.Dispatcher.BeginInvoke((ThreadStart)delegate()
                    {
                        ProgressBar1.Value = 0;
                    });
                    worker.RunWorkerAsync();
                }
            }        
    
            void worker_DoWork(object sender, DoWorkEventArgs e)
            {
                for (int i = 0; i <= 5060; i += 1)
                {
                    ProgressBar1.Dispatcher.BeginInvoke(()=>
                    {
                        ProgressBar1.Value = i;
                    });
                    Thread.Sleep(10);
    
                }    
            }
    16 Eylül 2012 Pazar 15:11
    Moderatör