13 Mayıs 2011 Cuma

Temel C# Konuları 2.(Combobox Kullanımı(KDV programı))

Merhaba arkadaşlar.Bugün C#'ta combobox,textbox,label ve button kullanarak basit bir fiyat hesaplayıcı programı yapacağız.Öncelikle aşağıdaki formu hazırlayalım.











Yapmak istediğimiz şey butona bastığımızda girilen fiyatı adet ve kdv oranıyla çarpıp ödenecek tutar kısmına sonucu yazması.Butona bastığımızda işlem yapılacağı için butonun click olayına kodları yazmamız gerekiyor ama kdv oranlarının form açıldığı anda combobox'a yüklenmesini sağlamak için form'un load kısmına da bi kaç kod yazmamız gerekiyor.Form'da herhangi bir boş yere çift tıklayıp form'un load kısmına gelip aşağıdaki kodları yazalım.

private void Form1_Load(object sender, EventArgs e)
        {
            comboBox1.Items.Add("8");
            comboBox1.Items.Add("18");
            comboBox1.Items.Add("25");
        }

Bu kodu eklediğimizde form açıldığı anda combobox'ın içerisini belirlediğimiz kdv oranlarıyla doldurmuş oluyoruz.Bu işlemi manual olarakta yapabiliriz.Combobox seçiliyken properties pencerisinde items özelliğine tıklayarak oraya direkt kdv oranlarını ekleyebiliriz.Bunları yaptıktan sonra artık asıl işi yapacak kodumuzu butonun içerisine yazıyoruz.


  private void button1_Click(object sender, EventArgs e)
        {
            textBox3.Text = Convert.ToString((Convert.ToDouble(textBox1.Text) + ((Convert.ToDouble(textBox1.Text) * Convert.ToInt32(comboBox1.SelectedItem)) / 100)) * Convert.ToInt32(textBox2.Text));
        }


Bu kodu yazdığımızda olan olay şu:

Textboxlar string tipinde değer tutarlar.Bu yüzden textboxların içerisine direkt olarak sayısal değer atayamayız yani double,int gibi.Öncelikle textbox'ın içindekini convert etmemiz gerekir.Eğer ondalıklı bir sayı tutacaksak convert.todouble ifadesini kullanırız.Eğer ondalıklı olmayan bir sayı tutacaksak convert.toint32 işimizi görür.

Dikkat ederseniz textboxlarımızı comboboxları hep convert ederek işlem yaptık.Çünkü öbür türlü işlem sonucu alamayız sadece string olarak toplamış olursunuz.Buda bizim işimize şuan yaramaz.

Combobox içerisindeki değeri combobox.text olarakta alabiliriz.Ama ileride bu yöntem bize lazım olacağı için combobox1.selecteditem olarak aldık.

En sonda bütün işlemlerin sonucunu textbox'a yazmak için convert.tostring özelliğini kullanmamız gerekiyor çünkü Textbox sadece string değer alıyordu hatırlarsanız.Biz bütün işlemleri sayısal olarak yaptıktan sonra string'e çevirip atmamız gerekiyor.Textbox3.text bizim sonucumuzun görünecek kısmı.

Yaptığımız işlem ise şu
( girilenpara+ ( ( girilenpara * kdvoranı) / 100 ) ) * adet   sonucu git Textbox3.text'e yaz.

girilenpara=Texbox1.text
kdvoranı=Combobox1.selecteditem veya Combobox1.text
adet=Textbox2.text


Girilen tüm bilgileri convert ederek işlem yaptık ve sonucunu bir textbox'a yazdırdık.











eğer convertleri karıştırıyorum diyorsanız aynı işi yapan şu kodlarıda kullanabilirsiniz :

private void button1_Click(object sender, EventArgs e)
        {
            double fiyat =Convert.ToDouble( textBox1.Text);
            int adet = Convert.ToInt32(textBox2.Text);
            int kdv = Convert.ToInt32(comboBox1.SelectedItem);
            textBox3.Text = Convert.ToString ( fiyat + ( ( fiyat * kdv ) / 100 ) * adet );
        }

Burada girilen değerleri direkt olarak çevirip değişkenlerimizin içine atıyoruz.ve sonrasında normal işlemleri yapıp en son yine string'e çevirerek sonucu basıyoruz.Dikkat etminiz gereken yer değişkene atama yaparken değişken hangi tipteyse ona göre convert etmeniz gerekir.Bütün kodlar aşağıdadır.


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace _2.ders_kdv
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            comboBox1.Items.Add("8");
            comboBox1.Items.Add("18");
            comboBox1.Items.Add("25");
        }

        private void button1_Click(object sender, EventArgs e)
        {
            textBox3.Text = Convert.ToString((Convert.ToDouble(textBox1.Text)+((Convert.ToDouble(textBox1.Text)*Convert.ToInt32(comboBox1.Text))/100))*Convert.ToInt32(textBox2.Text));
        }
    }
}

Hiç yorum yok:

Yorum Gönder