12 Eylül 2012 Çarşamba

C# ile ProgressBar

Merhaba Webkolog okurları! Bugün C# .Net Framework 4 ve Visual Studio 2010 kullanarak uygulamalarımızda bir işlemin ilerlemesini görsel olarak göstermek için kullandığımız ProgressBar kontrolünü yakından inceleyeceğiz. ProgressBar, özellikle uzun süren işlemlerin kullanıcıya geri bildirim sağlaması açısından önemlidir. Gelin, bu kontrolün temel özelliklerine ve kullanımına birlikte göz atalım.

ProgressBar Kontrolü Nedir?

ProgressBar kontrolü, bir işlemin tamamlanma yüzdesini veya genel ilerlemesini görsel olarak temsil eden bir çubuk görüntüler. Bu kontrol, kullanıcılara bir işlemin ne kadarının tamamlandığına dair bilgi vererek, uygulamanın yanıt vermediği izlenimini ortadan kaldırır.

ProgressBar Kontrolünü Kullanma

  1. ProgressBar Oluşturma:
    • Visual Studio 2010'da, Toolbox'tan bir ProgressBar kontrolünü formunuza sürükleyerek veya kodda bir ProgressBar nesnesi oluşturarak başlayabilirsiniz.
  2. Özelliklerini Ayarlama:
    • Minimum ve Maximum özellikleri, ProgressBar'ın temsil ettiği değer aralığını belirtir. Varsayılan olarak 0 ve 100'dür.
    • Value özelliği, mevcut ilerleme değerini alır veya ayarlar.
    • Step özelliği, PerformStep() metodu çağrıldığında Value özelliğinin ne kadar artacağını belirtir.
    • Style özelliği, ProgressBar'ın görünümünü ayarlar.
    • MarqueeAnimationSpeed özelliği, Marquee stilindeki animasyonun hızını ayarlar.

Örnek Kullanım

Aşağıdaki örnekte, bir ProgressBar oluşturmayı, özelliklerini ayarlamayı ve bir işlemi simüle ederek ilerlemeyi göstermeyi gösteriyoruz:

// ProgressBar örneği
// Marquee animasyon hızını ayarlar.
progressBar1.MarqueeAnimationSpeed = 100;
// Minimum değeri ayarlar.
progressBar1.Minimum = 0;
// Maximum değeri ayarlar.
progressBar1.Maximum = 100;
// ProgressBar stilini ayarlar.
progressBar1.Style = ProgressBarStyle.Blocks;
// Her adımda Value özelliğinin ne kadar artacağını ayarlar.
progressBar1.Step = 1;
// Mevcut ilerleme değerini ayarlar.
progressBar1.Value = 50;

Bu örnekte, progressBar1 adında bir ProgressBar oluşturduk. Minimum ve maksimum değerlerini 0 ve 100 olarak ayarladık. Style özelliğini Blocks olarak belirledik. Step özelliğini 1 olarak ayarladık ve Value özelliğini 50 olarak ayarlayarak başlangıç ilerlemesini %50 olarak belirledik.

ProgressBarStyle Numaralandırması

ProgressBarStyle numaralandırması, ProgressBar'ın görünümünü belirler:

  • Blocks: İlerleme, bloklar halinde görüntülenir.
  • Continuous: İlerleme, sürekli bir çubuk olarak görüntülenir.
  • Marquee: İlerleme, hareketli bir animasyonla görüntülenir. Bu stil, işlemin tamamlanma süresi bilinmediğinde kullanılır.

ProgressBar Kontrolünün Özellikleri

  • Minimum: İlerleme aralığının alt sınırını belirtir.
  • Maximum: İlerleme aralığının üst sınırını belirtir.
  • Value: Mevcut ilerleme değerini alır veya ayarlar.
  • Step: PerformStep() metodu çağrıldığında Value özelliğinin ne kadar artacağını belirtir.
  • Style: ProgressBar'ın görünümünü belirler.
  • MarqueeAnimationSpeed: Marquee stilindeki animasyonun hızını ayarlar.

ProgressBar Kontrolünün Metotları

  • PerformStep(): Value özelliğini Step özelliği kadar artırır.
  • Increment(int value): Value özelliğini belirtilen değer kadar artırır.
  • Reset(): Value özelliğini 0'a ayarlar

Örnek: Dosya Kopyalama İlerlemesini Gösterme

Aşağıdaki örnekte, bir dosya kopyalama işleminin ilerlemesini bir ProgressBar ile nasıl göstereceğimizi ele alıyoruz:

private void btnKopyala_Click(object sender, EventArgs e)
{
    string kaynakDosya = "kaynak.txt";
    string hedefDosya = "hedef.txt";
    long toplamBoyut = new FileInfo(kaynakDosya).Length;
    long okunanBoyut = 0;
    byte[] buffer = new byte[1024];
    using (FileStream kaynakAkis = new FileStream(kaynakDosya, FileMode.Open, FileAccess.Read))
    {
        using (FileStream hedefAkis = new FileStream(hedefDosya, FileMode.Create, FileAccess.Write))
        {
            int okunan;
            while ((okunan = kaynakAkis.Read(buffer, 0, buffer.Length)) > 0)
            {
                hedefAkis.Write(buffer, 0, okunan);
                okunanBoyut += okunan;
                // ProgressBar'ı güncelle
                progressBar1.Value = (int)((okunanBoyut * 100) / toplamBoyut);
            }
        }
    }
    MessageBox.Show("Dosya kopyalandı!");
}

Bu örnekte, bir dosyayı okuyup başka bir dosyaya yazarken okunan bayt sayısını takip ediyoruz. Toplam boyuta oranlayarak ProgressBar'ın Value özelliğini güncelliyoruz.

Sevgili Webkolog okurları, C# .Net Framework 4 ve Visual Studio 2010 kullanarak ProgressBar kontrolünün temel kullanımını ve bazı önemli özelliklerini bu şekilde incelemiş olduk. Bu kontrol, uygulamalarınızda uzun süren işlemleri kullanıcıya görsel olarak aktarmanızı ve onlara geri bildirim sağlamanızı kolaylaştırır.

Webkolog'u takipte kalın!

Hepinize bol ilerlemeli ve başarılı projeler dilerim!

 

0 yorum:

Yorum Gönder