C# ILE DEVEXPRESS NESNELERI KULLANIMI #GRIDCONTROL EVENTLER

Ağustos 18, 2016 Mustafa BÜKÜLMEZ 0 Yorum



Merhabalar Arkadaşlar

Kaldığımız yerden devam ediyoruz. Bu makalemizde GridControl ve GridView eventleri hakkında olacak.

Her zaman diyorum yine diyeceğim. Sadece kullandığım kısımlarını anlatacağım. Çünkü hepsini anlatacak olsak 100 tane ders çıkar.

Hadi Başlayalım.

1- GridView_Click
2- GridView_RowClick
3- GridView_KeyDown
4- GridView_RowStyle
5- GridView_DoubleClick

1- GridView_Click 
 Bu event çok kullanışlı değildir. Tabi kullandığınız yere göre yapacağınız işleme göre kullanışlı olabilir. Örn bir projenizde tıkladığınız gridview'in adını almanız gerekebilir.

 private void gridView1_Click(object sender, EventArgs e)
        {
            MessageBox.Show(gridView1.Name.ToString());
        }

2- GridView_RowClick
Bu eventi çok kullanırım şahsen. Genelde kayıt formu ile listesi aynı formda olduğunda KartOku işlemini daha rahat yapmak için kullanırım. RowClick ile Click arasındaki fark biri sadece satıra tıkladığınızda diğeri de gridview'in herhangi bir yerine tıkladığınızda tetiklenir. Bu yüzden KartOku işlemi yaparken index numarasını alamayacağından dolayı Click eventinde daha çok hata çıkacaktır.

private void gridView1_RowClick(object sender, DevExpress.XtraGrid.Views.Grid.RowClickEventArgs e) 
        { 
            Temizle();
            KartOku(); 
        }

3- GridView_KeyDown
Bu eventi de her zaman rowclick eventi ile aynı anda kullanırım. Amacı ise kullanıcı sadece mouse ile tıklamak zorunda kalmasın. Klavyeden yön tuşları ile de KartOku işlemini gerçekleştirebilir.

   private void gridView1_KeyDown(object sender, KeyEventArgs e) 
        { 
            Temizle();
            KartOku(); 
        }

4- GridView_RowStyle
Bu eventi genelde gridview renklendirme işlemlerinde kullanırım. Örn Veresiye takibi yapılacak bir formda günü geçen ödemeleri kırmızı renkle göstermek isteyebiliriz.O zaman bu eventi kullanırız.

      private void gridView1_RowStyle(object sender, DevExpress.XtraGrid.Views.Grid.RowStyleEventArgs e)
        {
            GridView View = sender as GridView;           
                if (e.RowHandle >= 0)
                {
                    DateTime Odeme_Tarih = Convert.ToDateTime(gridView1.GetRowCellValue(e.RowHandle, "ÖDEME_TARİHİ"));                   
                    if (DateTime.Now > Odeme_Tarih)
                    {
                        e.Appearance.BackColor = Color.FromName("Red"); // soldan sağa
                        e.Appearance.BackColor2 = Color.FromName("Blue"); // sağdan sola
                        e.Appearance.ForeColor = Color.FromName("Black"); // yazı rengi
                    }                   
              }
        }
İşte burada DevExpress'in bir özelliği giriyor araya. BackColor  ve BackColor2 ile satırı radyan olarak renkledirebiliyoruz. Yani satıra renk geçişi verebiliyoruz. BackColor sadece buna renk verirseniz tek renk olur BackColor ve BackColor2 renk verirseniz renk geçişli olur. Diğeri de zaten yazı rengidir. Color.FromName özelliği renk adından " Color " nesnesi çıkarır. Projemde bunu parametrik yaptığım için kullanıcı istediği rengi parametreler tablosuna kaydediyor ve oradaki kayda göre renkleri değişiyor.

5- GridView_DoubleClick
Bu eventi de ComboBox'u ve DevExpress nesnelerinden olup hemen hemen aynı özelliğe sahip LookUpEdit  nesnesini sevmediğimden belirli bir sistem ile gridview'in bu özelliğini sık kullanıyorum.
Şimdi neden ve nasıl kullandığımı açıklayayım.

Yukarıda bahsettiğim nesneleri kullanmayı sevmediğimden dolayı forma bir ButtonEdit ve CalcEdit ekliyorum. ButtonEdit'e tıklandığında bana istediğim verilerle dolu olan bir grid açıyor. Bu gridde istediğim kayda çift tıklayarak formun Close eventi içerisinde tıkladığın satırın verilerini önceki formdaki ButtonEdit (Adını) ve CalcEdit(Kodunu) nesnelerine dolduruyorum. İnsert içerisinde de CalcEdit'teki veriyi kaydediyorum ve listede gösterirken de İç İçe Select kullanarak kodu yerine adını gösteriyorum.

       private void gridControl1_DoubleClick(object sender, EventArgs e)
        {
            try
            {
                int index = gridView1.FocusedRowHandle; // satırın index numarası
                RECNO = Convert.ToInt32(gridView1.GetRowCellValue(index, "KAYITNO").ToString());
                KODU = Convert.ToString(gridView1.GetRowCellValue(index, "KODU").ToString());
                ADI = Convert.ToString(gridView1.GetRowCellValue(index, "ADI").ToString());                                Close();
            }
            catch
            {
            }
        }

Bunu keydown eventi ile birlikte de kullanabiliriz. Fakat onda da tuş kontrolü yapmamız gerekir.

 private void gridView1_KeyDown(object sender, KeyEventArgs e)
        {
            switch (e.KeyData)
            {
                case Keys.Enter: // ENTER tuşuna basılırsa
                    try
                    {
                        int index = gridView1.FocusedRowHandle;
                        RECNO = Convert.ToInt32(gridView1.GetRowCellValue(index, "KAYITNO").ToString());
                        KODU = Convert.ToString(gridView1.GetRowCellValue(index, "KODU").ToString());
                        ADI = Convert.ToString(gridView1.GetRowCellValue(index, "ADI").ToString());
                        Close();
                    }
                    catch
                    {
                    }
                    break;
            }
        }

Bunlar sadece en sık kullandığım eventler. Yenileri eklendikçe bende bu makale üzerinde " Edit " diye belirterek ekleyeceğim.
Bu makalemizde bu kadar arkadaşlar. Başka bir makalede görüşmek üzere.

Saygılarımla
Mustafa BÜKÜLMEZ
http://mustafabukulmez.com/


0 Yorum: