ProgressBar kontrolü C#’da özellikle dosya kopyalama işlemleri sırasında gördüğünüz, bir işin ne kadarının tamamlandığını gösteren estetik görünümlü bir kontroldür. Görsel uygulamalarda çok fazla kullanım alanı bulunmasına rağmen programcılar tarafından işin görsel boyutu gözden kaçırıldığı için pek fazla kullanılmamaktadır.
C# form uygulamalarında ToolBox içerisinde Common Controls sekmesinden ProgressBar kontrolünü bulabilirsiniz.
ProgressBar Kontrolünün Önemli Özellikleri
Value: ProgressBar’ın göstereceği değer -bar’ın ne kadarının dolu olduğu- bu özellikte saklanır. Varsayılan olarak bar boş olacağı için 0’dır.
Minimum ve Maximum: ProgressBar’ın hangi aralıklarda işlem göreceğini belirleyen özelliktir. Örneğin bir programın ne kadarının yüklendiğini gösteren bir progressbar 0 ile 100 arasında bir değer alacaktır.
Step: Bu özellik ProgresBar’ın kaçar kaçarlık dilimler halinde dolacağını belirleyen özelliktir.
Style: Bar’ın görsel olarak ne şekilde dolacağını belirleyebileceğiniz ayarlamadır. Block, Continuos ve Marguee şeklinde üç farklı değer alır.
Yukarıdaki saydığımız özellikler bu kontrolün kullanılması sırasında işimize yarayacak olan temel ayarları içerir. Bu ayarlamaları Properties penceresinden yapabileceğiniz gibi, kod ile de istediğiniz anda değiştirebilirsiniz.
ProgressBar Kontrolü Kullanımı İçin Örnek Uygulama
Kontrolün kullanımını daha iyi anlayabilmek için bir örnek uygulama yapalım. Örneğimizde kullanıcının text kutusuna 150 karakterlik mesaj yazma hakkı bulunsun. Bu mesajın yüzde kaç oranında tamamlandığını ProgressBar kontrolü ile gösterelim. Tabi kullanıcı mesajı yazdığı sürece ProgressBar’daki değer dinamik olarak değişecek.
Öncelikle form görüntüsü aşağıdaki gibi olacak şekilde tasarlayalım.
ProgressBar’ın yukarıda saydığım özelliklerini ve TextBox’ın MaxLenght özelliğini Form_Load olayı içerisinde belirttim. Siz isterseniz Properties penceresi üzerinden de değiştirebilirsiniz.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
private void Form1_Load(object sender, EventArgs e) { textBox1.MaxLength = 150; progressBar1.Minimum = 0; progressBar1.Maximum = 100; progressBar1.Step = 5; progressBar1.Style = ProgressBarStyle.Continuous; } private void textBox1_TextChanged(object sender, EventArgs e) { int yaziUzunluk = textBox1.TextLength; int deger = (int)yaziUzunluk * 100 / textBox1.MaxLength; progressBar1.Value = deger; } |
Uygulamayı çalıştırdığınızda Text kutusuna değer girdiğiniz sürece ProgressBar’ın değeri artacak ve mesaj 150 karakter olduğunda ProgressBar’ın değeri %100 olacaktır.