Ne arayalım?

ARAMIZA KATILIN

BİZE ULAŞIN

Adres:

E-posta:

host/bin/bilisimlife.dll

iletisim@bilisimlife.net

ComboBox ile Hesap Makinesi 45664566 okunma

02.12.2017

Programlama

Rserit

Windows Form Application içerisinde ComboBox’ı kullanarak listeden seçtiğimiz işlemle hesap yaptırabiliriz. Işin mantığı, ComboBox’ta seçtiğimiz işlem, iki sayıyı hesaplatıp sonuç olarak bizlere yazdıracak. Aslında bu zor değil.

Bir form ekranı oluşturacağız. Burada iki adet textbox, bir adet combobox, bir adet button, ve birkaç adet label gerekiyor (sonucu yazdırmamız için en az bir tane). 

Aşağıdaki gibi bir form ekranı oluşturun.

Not: Eklediğimiz nesnelerin name kısımlarını benim değiştirdiğim gibi değiştirirseniz bir problem oluşmayacaktır. 2 textbox’tan birini TxtBirinciSayi, diğerini TxtIkinciSayi; eklediğimiz button nesnesini BtnHesapla olarak, eklediğimiz label’lardan birini LblSonuc olarak değiştirebilirsini

Şimdi bizim işlemlerimiz olmalı. Bunları ComboBox’ta listelettireceğiz. O halde form ekranında boş bir yere çift tıklayalım ve buraya combobox’a listelenecek işlemleri yazalım.

Ekleme işleminin mantığı şöyledir,

ComboBox_adi.Items.Add(“isim”); 

Items öğe demektir, Add eklemek manasına gelir.

O halde bu satırda ComboBox nesnesine “isim” isminde bir öğe ekle dedik. Buna dayanarak aşağıdaki komutları girelim.

 

     comboBox1.Items.Add("Toplama");

            comboBox1.Items.Add("Çıkarma");

            comboBox1.Items.Add("Çarpma");

            comboBox1.Items.Add("Bölme"); 

Aşağıdaki gibi. 

ComboBox’a öğeleri girdik. Şimdi butona tıkladığımızda seçili işlemi yapmasını sağlamaktır. 

Burada sürekli if kullanacağız. Yani mantıken “Eğer toplama öğesini seçersem textbox nesnesine girilen sayı ile ikinci textbox nesnesine girilen sayıyı topla. Eğer çıkarma öğesini seçersem birinci textbox nesnesine girilen sayı ile ikinci textbox nesnesine girilen sayıyı çıkar….” Dememiz gerekir. Yapmamız gereken bunu koda dökmek.

O da şöyle olacaktır:

 

           if (comboBox1.SelectedItem.ToString() == "Toplama")

            {

                LblSonuc.Text = "Sonuç = " + (Int32.Parse(TxtBirinciSayi.Text) + Int32.Parse(TxtIkiciSayi.Text)).ToString();

            }

 

 Yukarıda ne söyledik?

  •  Combobox1 nesnesini çağırıp, seçili değeri SelectedItem ile belirttik. Bunu ise ToString’e çevirdik, ekrana yazı olarak girsin. Yani biz burada, “Eğer comboBox1 nesnesinde seçili öğle Toplama ise…” dedik. Doğru gidiyoruz!
  •  LblSonuc isimli Label nesnemize text (yazı) olarak “Sonuç = budur” demek istiyoruz.
  • Şuraya dikkat edin:  (Int32.Parse(TxtBirinciSayi.Text) dedik, yani burada TxtBirinciSayi’ya girilen text değerini Int32 türüne Parse (dönüştür) dedik. Ardından araya bir toplama işareti koyarak aynısını TxtIkinciSayi için de yaptık. Sonra ise bunu ToString()’e çevirdik, çünkü sayısal değeri ekrana yazdıracağız (string’e atadık).

 Bu mantığa dayanarak komutlarımız şu şekilde olmalı:

 
 

            if (comboBox1.SelectedItem.ToString() == "Toplama")

            {

                LblSonuc.Text = "Sonuç = " + (Int32.Parse(TxtBirinciSayi.Text) + Int32.Parse(TxtIkiciSayi.Text)).ToString();

            }

 

            else if (comboBox1.SelectedItem.ToString() == "Çıkarma")

            {

                LblSonuc.Text = "Sonuç = " + (Int32.Parse(TxtBirinciSayi.Text) - Int32.Parse(TxtIkiciSayi.Text)).ToString();

            }

            else if (comboBox1.SelectedItem.ToString() == "Çarpma")

            {

                LblSonuc.Text = "Sonuç = " + (Int32.Parse(TxtBirinciSayi.Text) * Int32.Parse(TxtIkiciSayi.Text)).ToString();

            }

            else if (comboBox1.SelectedItem.ToString() == "Bölme")

            {

                LblSonuc.Text = "Sonuç = " + (Int32.Parse(TxtBirinciSayi.Text) / Int32.Parse(TxtIkiciSayi.Text)).ToString();

            }

 

Aşağıdaki gibi olacaktır.

Bu komutları farklı bir şekilde de yazabilirdik, ama bu şekilde yazmayı daha uygun gördüm. Burada iş programa ne demek istiyorsanız bunu koda dökebilmektir. Yoksa sizin dahi anlamadığınız mantığı programın otomatik anlamasını beklememelisiniz.

Şimdi projeyi çalıştıralım ve test edelim.

Işlemimizi seçip hesapla butonuna tıklayalım.

Istediğim işlemi hesaplatıyorum. Bu proje de bu kadardı.

Farklı Bir Şekilde Yapmak

Bu kodları farklı bir şekilde de yazabilirdik. Fark ettiyseniz değişken tanımlamadan, textbox.text'i Parse ederek işlem yaptırdım. Yani bir değişken yoktu. Sayi1, sayi2 ve sonuc diye üç tane değişken oluşturur, sayi1 ile sayi2'yi işleme tabii tutup sonuc değişkenine de yazdırabilirdim ki genellikle yapılan yöntem budur.

Isterseniz button_click'e yazdığımız kodları silip aşağıdakileri de yazsanız sonuç aynı olacaktır.


            int sayi1, sayi2, sonuc = 0;
            sayi1 = int.Parse(TxtBirinciSayi.Text);  //sayi1 değişkenini TxtBirinciSayi isimli TextBox'a atadık
            sayi2 = int.Parse(TxtIkiciSayi.Text);  //sayi2 değişkenini TxtIkinciSayi isimli TextBox'a atadık

            if (comboBox1.SelectedItem.ToString() == "Toplama")
            {
                sonuc = sayi1 + sayi2;
                LblSonuc.Text = "Sonuç: " + sonuc.ToString();
            }

            else if (comboBox1.SelectedItem.ToString() == "Çıkarma")
            {
                sonuc = sayi1 - sayi2;
                LblSonuc.Text = "Sonuç: " + sonuc.ToString();
            }
            else if (comboBox1.SelectedItem.ToString() == "Çarpma")
            {
                sonuc = sayi1 * sayi2;
                LblSonuc.Text = "Sonuç: " + sonuc.ToString();
            }
            else if (comboBox1.SelectedItem.ToString() == "Bölme")
            {
                sonuc = sayi1 / sayi2;
                LblSonuc.Text = "Sonuç: " + sonuc.ToString();
            }


 

Daha farklı bir şekilde de yapılabilir. Bunun için biraz mantık yürütmeniz yeterli olacaktır.
Kolay gelsin.

Recep ŞERIT



BİR YORUM YAZIN