Şimdiye kadar konsol tabanlı uygulamalar oluşturmak için C# ile nasıl çalışacağımızı gördünüz. Ancak gerçek hayattaki bir senaryoda normalde Windows Forms veya Web tabanlı uygulamalar kullanılır.
Bu yazıda bir Windows tabanlı uygulamaları nasıl oluşturabileceğimize odaklanacaktır. Ayrıca, Windows uygulamalarının çeşitli unsurlarıyla nasıl çalışılacağına dair bazı temel örnekler de göreceksiniz.
Bir Form uygulaması Windows İşletim sistemi üzerinde çalışan bir uygulamadır. Bir Windows Form uygulamasında normalde label, textbox, listbox, button, datagrid vb. controller bulunur.
Aşağıdaki örneklerle Windows Form oluşturmayı basit bir şekilde öğrenmeniz hedeflenmiştir.
C# Windows Form Örnekleri
Örnek 1: C# Santigrat Derece – Fahrenhayt Çevirme
Derece olarak textbox1 e girilen değerin butona basıldığında Fahrenhayt’a çevrilmesi için Button1’e yazılacak kodlar:
1 2 3 4 5 6 7 | private void button1_Click(object sender, EventArgs e) { double c = Convert.ToDouble(textBox1.Text); textBox2.Text=Convert.ToString((c * 1.8) + 32); } |
Örneği Fahrenhayt’tan Santigrat’a çevirecek şekilde çalıştırmak için ise kodları aşağıdaki şekilde düzenlemek yeterli olacaktır.
1 2 3 4 | double f = Convert.ToDouble(textBox2.Text); textBox1.Text = Convert.ToString((f - 32) / 1.8); |
Örnek 2: Kullanıcının Girdiği Aralıktaki Asal Sayıları Listeleme
Bu yazımızda kullanıcının belirlediği başlangıç ve bitiş sayıları arasında bulunan Asal Sayıları listeleme ve kaç tane Asal Sayı olduğunu gösterme işlemi yapan bir örnek gerçekleştireceğiz.
Buton’a çift tıklayarak Button_Click olayına aşağıdaki kodları yazıyoruz.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | private void button1_Click(object sender, EventArgs e) { listBox1.Items.Clear(); int baslangic,bitis; baslangic = Convert.ToInt32(textBox1.Text); bitis = Convert.ToInt32(textBox2.Text); int sayi = baslangic; bool durum = true; while (sayi < bitis) { sayi++; for (int i = 2; i < sayi; i++) { if (sayi % i == 0) { durum = false; } } if (durum == true && sayi != 1) { listBox1.Items.Add(sayi.ToString()); } durum = true; } MessageBox.Show(listBox1.Items.Count.ToString()+" Adet asal sayı var."); } |
Örnek 3:Girilen mesajı girilen sayı kadar ekrana uyarı olarak yazdırma
Göster butonunun click olayı
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | private void button1_Click(object sender, EventArgs e) { string mesaj = Convert.ToString(textBox1.Text); //Mesaj değişkenimizi belirlirleyip textbox1'e girilen mesajı değişkene atıyoruz. int mAdet = Convert.ToInt16(textBox2.Text); //Mesaj adeti değişkenimizi belirleyip textbox2'ye girilen mesajı değişkene atıyoruz. for (int i = 1 ; i <= mAdet; i++)//girilen sayıya kadar dönen döngü oluşturuyoruz. { MessageBox.Show(+i +"-" +mesaj);//Mesajı messagebox'a yazdırıyoruz. } } |
Örnek 4: Buton Yakalama Örneği
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { MessageBox.Show("TEBRİKLER"); this.Close(); } Random r = new Random(); int boyut = 50; private void button1_MouseHover(object sender, EventArgs e) { boyut += 5; button1.Top = r.Next(0, this.Height-50); button1.Left = r.Next(0, this.Width-50); button1.Width = boyut; button1.Height = boyut; } } |
Örnek 5: C# Windows Form ile Yazılı Ortalaması Hesaplama
C# Windows Form ile 2 yazılı ve 1 sözlü notu girilerek Ortalamayı hesaplayıp Ekrana yazdırmak için oluşturulmuş uygulama örneği:
1 2 3 4 5 6 7 8 9 10 11 | private void button1_Click(object sender, EventArgs e) { double y1, y2, s1, ortalama; y1 = Convert.ToDouble(textBox1.Text); y2 = Convert.ToDouble(textBox2.Text); s1 = Convert.ToDouble(textBox3.Text); ortalama = (y1 + y2 + s1) / 3; label5.Text = ortalama.ToString(); } |
Örnek 6: C# ProgressBar Renk Değiştirme
Kodlarımıza geçiyoruz. Bu örneğimizde butona basıldığında progressBar1 için Kırmızı renk, progressBar2 için Mavi renk, progressBar3 için Siyah renk ve progressBar4 için Sarı renk ayarlaması yaparak kod üzerinde rasgele değerler vereceğiz. www.algoritmaornekleri.com
1 2 3 4 5 6 7 8 9 10 11 12 13 | private void button1_Click(object sender, EventArgs e) { progressBar1.ForeColor = Color.Red; progressBar2.ForeColor = Color.Blue; progressBar3.ForeColor = Color.Black; progressBar4.ForeColor = Color.Yellow; progressBar1.Value = 30; progressBar2.Value = 60; progressBar3.Value = 50; progressBar4.Value = 75; } |
Kodlarımızı yazdıktan sonra yapmamız gerek bir işlem daha kalıyor. Solution Explorer penceresinde “Program.cs” dosyasına çift tıklıyoruz ve burada yer alan;
1 2 3 | Application.EnableVisualStyles(); |
satırını siliyoruz ya da aşağıda görüldüğü gibi açıklama satırı haline getiriyoruz.
1 2 3 4 5 6 7 8 | static void Main() { //Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form1()); } |
Örnek 7: Bu örnekte kullanıcıdan bir aldıktan sonra 0’dan başlayarak kullanıcının girdiği sayıya kadar olan sayıları toplatıyoruz.Kullanıcıdan aldığımız bir sayıyı ilk önce değişkene atayıp daha sonra for döngüsü kullanarak toplam değişkenine aktarıp textbox içine yazdırıyoruz.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | private void button1_Click(object sender, EventArgs e) { int sayi, toplam = 0; // Değişkenlerimizi belirliyoruz. sayi = Convert.ToInt32(textBox1.Text); // textbox1'e girilen sayıyı değişkene atıyoruz. for (int i = 0; i <= sayi; i++) {// Girdiğimiz sayıya kadar dönen döngü oluşturuyoruz. toplam += i; // Sayıları toplatıyoruz. textBox2.Text = toplam.ToString(); // Sonucu textbox2'ye yazdırıyoruz. } } |
Örnek 8: Kullanıcıdan 2 sayı alınıyor ve bu sayılar checkbox’ların işaretlenme durumuna göre işlem yapılıp listbox’a yazdırılıyor. www.algoritmaornekleri.com
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | private void buttonHesapla_Click(object sender, EventArgs e) { double sayi1 = Convert.ToDouble(textBoxSayi1.Text); //TextBox'ta alınan sayıyı Double tipine çeviriyoruz double sayi2 = Convert.ToDouble(textBoxSayi2.Text); //TextBox'ta alınan sayıyı Double tipine çeviriyoruz if (checkBoxTopla.Checked == true) {//Eğer topla checkbox'u seçili ise aşağıdaki işlemleri yaptırıyoruz. double sonuc = sayi1 + sayi2; //toplama işlemini sonuc değişkeninde yaptırıyoruz. listBox1.Items.Add(sayi1 + "+" + sayi2 + "=" + sonuc); //Ve sonucu listbox'a yazdırıyoruz. } if (checkBoxCikar.Checked == true) {//Eğer cikar checkbox'u seçili ise aşağıdaki işlemleri yaptırıyoruz. double sonuc = sayi1 - sayi2; //Çıkarma işlemini sonuc değişkeninde yaptırıyoruz. listBox1.Items.Add(sayi1 + "-" + sayi2 + "=" + sonuc); //Ve sonucu listbox'a yazdırıyoruz. } if (checkBoxCarp.Checked == true) {//Eğer carp checkbox'u seçili ise aşağıdaki işlemleri yaptırıyoruz. double sonuc = sayi1 * sayi2; //Çarpma işlemini sonuc değişkeninde yaptırıyoruz. listBox1.Items.Add(sayi1 + "*" + sayi2 + "=" + sonuc); //Ve sonucu listbox'a yazdırıyoruz. } if (checkBoxBol.Checked == true) {//Eğer bol checkbox'u seçili ise aşağıdaki işlemleri yaptırıyoruz. double sonuc = sayi1 / sayi2; //Çıkarma işlemini sonuc değişkeninde yaptırıyoruz. listBox1.Items.Add(sayi1 + "/" + sayi2 + "=" + sonuc); //Ve sonucu listbox'a yazdırıyoruz. } } private void buttonTemizle_Click(object sender, EventArgs e) { listBox1.Items.Clear(); //Listbox'u temizliyoruz. } |
Örnek 9: İki text kutusundaki metni birleştir
1 2 3 4 5 6 7 8 | private void button1_Click(object sender, EventArgs e) { label1.Text = textBox1.Text + " " + textBox2.Text; textBox1.Clear(); textBox2.Clear(); } |
Örnek 10: Butona tıkladıkça sayıyı arttırma
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | public partial class Form1 : Form { public Form1() { InitializeComponent(); } int x = 0; private void Form1_Load(object sender, EventArgs e) { } private void button1_Click(object sender, EventArgs e) { //int s = Convert.ToInt32(button1.Text); ////s++; ////button1.Text = s.ToString(); //button1.Text = (++s).ToString(); button1.Text = (++x).ToString(); } } |
Örnek 11: Listbox içindeki sayıları toplama
Button1_Click için C# kodları aşağıdaki gibi olacaktır.
1 2 3 4 5 6 7 8 9 10 11 | private void button1_Click(object sender, EventArgs e) { double toplam = 0; for(int i=0;i<listBox1.Items.Count;i++) { toplam += Convert.ToDouble(listBox1.Items[i]); } label1.Text = "Toplam : " + toplam; } |
Örnek 12: C# ComboBox SelectedIndexChanged Olayı
ComboBox’ta seçilen dizinin ne zaman değiştirildiğini belirlemek için bu olay için bir olay işleyicisi oluşturabilirsiniz.
ComboBox’taki geçerli seçime göre diğer denetimlerde bilgi görüntülemeniz gerektiğinde bu özellikten faydalanılabilir.
Örneğimizde combobox kontrolünde seçilen elemana göre listbox ‘ a eleman ekleyeceğiz. combobox1 içinde seçilen ilin ilçelerini listbox içinde göstereceğiz. www.algoritmaornekleri.com
Form yüklendiğinde combobox içine elemanların eklenmesi;
1 2 3 4 5 6 7 | private void Form1_Load(object sender, EventArgs e) { comboBox1.Items.Add("İstanbul"); comboBox1.Items.Add("Ankara"); } |
combobox1 seçim değiştiğinde çalışacak kodlar;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) { listBox1.Items.Clear(); if(comboBox1.SelectedIndex==0) { listBox1.Items.Add("Avcılar"); listBox1.Items.Add("Bahçelievler"); listBox1.Items.Add("Beşiktaş"); listBox1.Items.Add("Kadıköy"); } else if(comboBox1.SelectedIndex==1) { listBox1.Items.Add("Etimesgut"); listBox1.Items.Add("Yenimahalle"); listBox1.Items.Add("Çankaya"); listBox1.Items.Add("Keçiören"); } } |
Örnek 13: C# Listbox’ a Veri Ekleme – Silme
Bu örneğimizde Formumuza eklediğimiz Listbox kontrolüne veri ekleme ve silme ve listbox içeriğini temizleme işlemlerini gerçekleştireceğiz.
Ekle Butonuna basıldığında girilen ad ve soyad bilgisinin birleştirilerek listBox’ a eklenmesini, ekleme işlemi tamamlandıktan sonra textbox içeriklerinin temizlenmesini sağlayalım.
1 2 3 4 5 6 7 8 | private void button1_Click(object sender, EventArgs e) { listBox1.Items.Add(textBox1.Text + " " + textBox2.Text); textBox1.Clear(); textBox2.Clear(); } |
Sil Butonu için listbox içinde seçilen elemanın silinmesini, eğer elemanseçilmemişse bir mesaj penceresi ile eleman seçimi yapılmasını isteyelim.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | private void button2_Click(object sender, EventArgs e) { int secim = listBox1.SelectedIndex; if(secim!=-1) {//ahmetcansever.com listBox1.Items.RemoveAt(secim); } else { MessageBox.Show("Seçim Yapın!"); } } |
Son olarak TEMİZLE buttonuna basıldığında listbox içeriğinin boşaltılmasını sağlayalım.
1 2 3 4 5 6 | private void button3_Click(object sender, EventArgs e) { listBox1.Items.Clear(); } |
Add Comment