merhaba arkadaşlar, Winforms da button tıklandığında buttonun yaptığı işlem bitinceye kadar loading işlemi olsun bunun için nasıl bir yol izlenmeli.şimdiden teşekkrler

soruldu: 15 Ağu '14, 09:51

aspci's gravatar image

aspci
759404757
cevap kabul oranı: 25%

1

anladığım kadarıyla Progress bar yapmak istiyorsun. google da "progress bar" diye aratırsan cevabı bulabilirsin

(16 Ağu '14, 06:10) Fatih Aşlamacı Fatih%20A%C5%9Flamac%C4%B1's gravatar image

ProgressBar kullanarak aşağıdaki kod parçasını hazırladım. Yapmak istediğine ulaşmanda yardımcı olacacağını düşünüyorum. BackgroundWorker kullanmamdaki amaç programın kitlenmemesini(yani yanıt vermiyor uyarısını) göstermemesi içindir.

using System;
using System.ComponentModel;
using System.Threading;
using System.Windows.Forms;

namespace AppBank.Forms
{
    public partial class FrmTest : Form
    {
        public FrmTest()
        {
            InitializeComponent();

            //Kontrollerin diğer Threadler tarafından kullanılabilmesini sağlandı
            CheckForIllegalCrossThreadCalls = false;
        }

        private void button1_Click(object sender, EventArgs e)
        {      
            StartProgress();

            //BackgroundWorker kullanılarak yeni thread ile çalışıldı
            var worker = new BackgroundWorker();
            worker.DoWork += worker_DoWork;
            worker.RunWorkerCompleted+=worker_RunWorkerCompleted;
            worker.RunWorkerAsync();
        }

        void worker_DoWork(object sender, DoWorkEventArgs e)
        {
            //Bazı kod parçacıkları
            for (int i = 0; i < 10; i++)
            {
                Thread.Sleep(1000);
            }
        }

        private void worker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
        {
            StopProgress();
        }

        /// <summary>
        /// ProgressBar'ın başlatılması ayarlarının yapılması
        /// </summary>
        private void StartProgress()
        {
            progressBar1.Value = 0;
            progressBar1.Style=ProgressBarStyle.Marquee;
            progressBar1.Visible = true;
            button1.Enabled = false;
        }

        /// <summary>
        ///  ProgressBar'ın durdurulması ayarlarının yapılması
        /// </summary>
        private void StopProgress()
        {
            progressBar1.Style=ProgressBarStyle.Blocks;
            progressBar1.Value = 100;
            button1.Enabled = true;
        }
    }
}
permanent link

cevaplandı: 18 Ağu '14, 03:22

M%C3%BCsl%C3%BCm%20%C3%96ZT%C3%9CRK's gravatar image

Müslüm ÖZTÜRK
10.6k103690
cevap kabul oranı: 28%

@müslüm öncelikle cevabın için teşekkür ederim.Aradığım cevaba yakin bir cevap fakat siz süre belirlemişsiniz süreyi manuel vermeden işlemin bitimine göre progressbar yüklenmesi için nasıl bir kod eklenebilir

(18 Ağu '14, 03:46) aspci aspci's gravatar image
1

Süreyi senin tahmini olarak hesaplaman gerekecek. Mesela benim kod parçamda for (int i = 0; i < 10; i++) döngüsü ile 10 kere dönüyor. Her bir adımda progressbar ın değerinde %10 artırma yapmak gerekecek. Seninde kodununu için de istediğin satırda progressBar ın değerini güncellemelisin. Değeri değiştirdikten sonra "progressBar1.Update();" kodunu yazmayı unutmamalısın yoksa tüm işlem bitmeden ekranda değeri göremezsin.

(18 Ağu '14, 04:17) Müslüm ÖZTÜRK M%C3%BCsl%C3%BCm%20%C3%96ZT%C3%9CRK's gravatar image

progressBar1.Update() nerde çalıştırmam gerekiyor peki?

(18 Ağu '14, 04:38) aspci aspci's gravatar image
1

örneğin: progressBar1.Value=20;progressBar1.Update(); yani Value özelliğinin değerini değiştirdikten sonra.

(18 Ağu '14, 05:59) Müslüm ÖZTÜRK M%C3%BCsl%C3%BCm%20%C3%96ZT%C3%9CRK's gravatar image

anlaşıldı teşşekürler .

(18 Ağu '14, 06:33) aspci aspci's gravatar image
Cevabınız
toggle preview

Bu soruyu takip et

E-Posta üzerinden:

Üyelik girişi yaptıktan sonra abonelik işlemlerini yapabilirsiniz

RSS üzerinden:

Cevaplar

Cevaplar ve Yorumlar

Yazı Formatlama

  • *italic* ya da _italic_
  • **bold** ya da __bold__
  • link:[text](http://url.com/ "başlık")
  • resim?![alt text](/path/img.jpg "başlık")
  • liste: 1. Foo 2. Bar
  • temel HTML etiketleri de kullanılabilir

Bu sorunun etiketleri:

×238
×16
×4

Soruldu: 15 Ağu '14, 09:51

Görüntüleme: 449 kez

Son güncelleme: 18 Ağu '14, 06:33

powered by BitNami OSQA