Son Haberler
Anasayfa / Yazılım / C# / C# Print İşlemleri Sipariş Formu Örneği ? 3

C# Print İşlemleri Sipariş Formu Örneği ? 3

Bir önceki yazımızın devamı niteliğinde Print işlemlerine devam edelim. Bu yazıyı okumadan önce önceki yazıları okuduğunuzdan emin olunuz.

C# Print İşlemleri Sipariş Formu Örneği ? 2

Formumuzda ListView kontrolümüzü seçip Properties alanından MultiSelection özelliğini False yapalım.

Öncelikle kullanıcı << butonuna bastığında ilk kayıta gitmesini sağlayalım. Bunun için << butonu üzerine çift tıklayalım ve kod tarafına geçelim. [csharp]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 SiparisFormu { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void btnBaskiOnizleme_Click(object sender, EventArgs e) { } private void btnilkKayit_Click(object sender, EventArgs e) { //ListView kontrolümdeki Items 0'a giderek ilk kayda gidiyorum. Ve buraya odaklanıyorum. listView1.Items[0].Selected = true; listView1.Focus(); SayfaBilgisiAl(); } //Bu metotla hangi sayfada yani hangi kayıtta olduğumu görebileceğim. 5 kayıttan işte 1. gibi, 1/5 gibi.. private void SayfaBilgisiAl() { lblKonum.Text = (listView1.SelectedIndices[0] + 1).ToString() + "/" + listView1.Items.Count.ToString(); } } } [/csharp] Şimdi birde önceki kayıt için işlem yapalım. Bunun içinde formumda < butonuna çift tıklıyorum. Buradaki kodlarım şu şekilde : [csharp]private void btnGeri_Click(object sender, EventArgs e) { //if ile ilk kayıttamıyım değilmiyim onu kontrol ediyorum, eğer ilk kayıtta değilsem bu işlemde -1 yapılıyor. if (listView1.SelectedIndices[0] > 0) { listView1.Items[listView1.SelectedIndices[0] - 1].Selected = true; } listView1.Focus(); SayfaBilgisiAl(); }[/csharp] Şimdi sonraki kayıt için kodlarımızı yazalım. > butonuna çift tıklayıp kod alanına geçelim :

private void btnileri_Click(object sender, EventArgs e)
        {
            //if ile son kayıttamıyız değilmiyiz ona bakıyoruz, son kayıtta değilsek next işlemi uygulanıyor.
            if (listView1.SelectedIndices[0] < listView1.Items.Count - 1)
            {
                listView1.Items[listView1.SelectedIndices[0] + 1].Selected = true;                
            }
            listView1.Focus();
            SayfaBilgisiAl();
        }

Son kayıta geçme işlemi içinde, >> butonuna çift tıklayıp kod alanına geçelim.

private void btnSonKayit_Click(object sender, EventArgs e)
        {
            listView1.Items[listView1.Items.Count - 1].Selected = true;
            listView1.Focus();
            SayfaBilgisiAl();
        }

Şimdi şu durumu da düşünelim. Kullanıcı form üzerinde mouse ile listview üzerinde bir kayıt seçmiş olabilir. Eğer bunu seçerse, bizim burdaki konum bilgisini okumamız gerekiyor. Bunun için Eventler içinde MouseClisk eventindeki kodlarımız şu şekilde :

Öncelikle Formumuzun design alanında ListView kontrolümüzü seçelim. Daha sonr abu kontrolümüze ait olan eventlerden (sağda properties alanında yıldırım işareti eventleri açar) MouseClisk eventine çift tıklayıp ilgili event içinde aşağıdaki kodları yazalım.

 private void listView1_MouseClick(object sender, MouseEventArgs e)
        {
            SayfaBilgisiAl();
        }

Yine aynı şekilde ListView kontrolümüz seçili iken KeyDown ve KeyUp eventlerinede aşağıdaki kodu yazıyoruz. Çünkü kullanıcı form üzerinde ok tuşları ile aşağı yukarı kullanarak kayıtlar üzerinde dolaşabilir. Ya da a harfine bastığında Arçelik veya Asus kaydına gidebilir, gittiğinde bu konum bilgisini de okumamız gerekir.

private void listView1_KeyUp(object sender, KeyEventArgs e)
        {
            SayfaBilgisiAl();
        }

FormLoad eventinde aşağıdaki kodları yazıyoruz :

private void Form1_Load(object sender, EventArgs e)
        {
            listView1.Items[0].Selected = true;
            SayfaBilgisiAl();
            ToplamAl();
        }

Birde toplamı hesaplayan metodum :

private void ToplamAl()
        {
            decimal toplam = 0;
            for (int i = 0; i < listView1.Items.Count; i++)
            {
                toplam += Convert.ToDecimal(listView1.Items[i].SubItems[2].Text);
            }
            txtToplam.Text = toplam.ToString("#,###.00 TL");
        }

Son olarak tüm kodlarımız şu şekilde :

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 SiparisFormu
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void btnBaskiOnizleme_Click(object sender, EventArgs e)
        {

        }

        private void btnilkKayit_Click(object sender, EventArgs e)
        {
            //ListView kontrolümdeki Items 0'a giderek ilk kayda gidiyorum. Ve buraya odaklanıyorum.
            listView1.Items[0].Selected = true;
            listView1.Focus();
            SayfaBilgisiAl();
        }

        //Bu metotla hangi sayfada yani hangi kayıtta olduğumu görebileceğim. 5 kayıttan işte 1. gibi, 1/5 gibi..
        private void SayfaBilgisiAl()
        {
            lblKonum.Text = (listView1.SelectedIndices[0] + 1).ToString() + "/" + listView1.Items.Count.ToString();            
        }

        private void btnGeri_Click(object sender, EventArgs e)
        {
            //if ile ilk kayıttamıyım değilmiyim onu kontrol ediyorum, eğer ilk kayıtta değilsem bu işlemde -1 yapılıyor.
            if (listView1.SelectedIndices[0] > 0)
            {
                listView1.Items[listView1.SelectedIndices[0] - 1].Selected = true;
            }
            listView1.Focus();
            SayfaBilgisiAl();
        }

        private void btnileri_Click(object sender, EventArgs e)
        {
            //if ile son kayıttamıyız değilmiyiz ona bakıyoruz, son kayıtta değilsek next işlemi uygulanıyor.
            if (listView1.SelectedIndices[0] < listView1.Items.Count - 1)
            {
                listView1.Items[listView1.SelectedIndices[0] + 1].Selected = true;                
            }
            listView1.Focus();
            SayfaBilgisiAl();
        }

        private void btnSonKayit_Click(object sender, EventArgs e)
        {
            listView1.Items[listView1.Items.Count - 1].Selected = true;
            listView1.Focus();
            SayfaBilgisiAl();
        }

        private void listView1_MouseClick(object sender, MouseEventArgs e)
        {
            SayfaBilgisiAl();
        }

        private void listView1_KeyUp(object sender, KeyEventArgs e)
        {
            SayfaBilgisiAl();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            listView1.Items[0].Selected = true;
            SayfaBilgisiAl();
            ToplamAl();
        }

        private void ToplamAl()
        {
            decimal toplam = 0;
            for (int i = 0; i < listView1.Items.Count; i++)
            {
                toplam += Convert.ToDecimal(listView1.Items[i].SubItems[2].Text);
            }
            txtToplam.Text = toplam.ToString("#,###.00 TL");
        }
    }
}

Bu yazı devam edecek..

Uygulamayı aşağıdaki linkten indirebilirsiniz.

3 yorum

  1. Merhaba, bir proje için sizinle görüşmek istiyorum. Mail atarsanız sevinirim…

  2. ne tür bir proje?

  3. devamı ne zaman çekilecek acaba :=)

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir