İlginizi Çekebilir
  1. Ana Sayfa
  2. C Sharp

C# DevExpress GridView Ekran Dizaynını Kaydetmek

C# DevExpress GridView Ekran Dizaynını Kaydetmek
+ - 0

C# DevExpress GridView Ekran Dizaynını Kaydetmek yazım ile C# eğitim setime devam ediyorum. Uzun zamandır DevExpress nesneleri hakkında bir ders eklemiyordum.  Bu dersimizde DevExpress GridView nesnesinde kolon düzeninin kaydetme ve geri yükleme konusuna bakacağız.

C# DevExpress GridView Ekran Dizaynını Kaydetmek

Her zaman derim DevExpress yazılımcılar mükemmel bir 3. parti yazılımdır. Bize kullanabileceğimiz yüzlerce özelliştirilmiş nesneler sunar. Hem görsellik açısından hemde kullanım kolaylığı açısından mükemmeldir.

DevExpress GridView’de herhangi bir kod yazmadan ekrandaki kolonları kaldırabilir, kolon seçici özelliğinden daha sonra tekrar ekleyebilir ve kolonların yerlerini değiştirebiliriz. Mesela GridView’de 30 tane kolon olsun. Ama işimize sadece 7 tanesi yarıyor olsun. Kalan 23 kolonun ekranda görünmemesini sağlayabiliriz.

Ama bu ekran dizaynını bir yere kaydetmezsek formu kapatıp açtığımızda yaptığımız düzenleme kaybolacaktır. Elbette DevExpress bunu düşünmüş ve ekran dizaynını XML formatında dışarı aktarabilme seçeneği sunmuş. Aynı şekilde bu XML dosyayı geri yükleyebiliyoruz.

Bu dersimizde işte bu konuyu işleyeceğiz ki oldukça kısa bir işlemdir.

Kodlarımızı görelim.

        /// <summary>
        /// Gönderilen Gridin ayarlanan görünümünü saklar. **\\Dizayn\\GridDizaynlar\\Kullanıcı Dizaynlar\\
        /// </summary>
        /// <param name="grid">Görünümü saklanacak GridView'i gönderin </param>
        /// <param name="form_adi">Ayrıcı olması için form adını gönderin </param>
        public void ekran_gridSakla(GridView grid, string form_adi)
        {
            string fileName = Bt.glb.Grid_XML_Path + form_adi + ".xml";
            grid.SaveLayoutToXml(fileName);
            MessageBox.Show("Ekran Görüntüsü Kullanıcı için Saklandı..");
        }

Yukarıdaki iki satırda görebildiğiniz gibi, kayıt edilecek bir yol ve dosya adı ile birlikte GridView Ekran Dizayn dosyasını dışarı aktarabiliyoruz.

Ben bunu bir kaç projemde hali hazırda uyguluyorum. Kullanıcının bilgisayarına form adı ile birlikte bu xml dosyayı kayıt ediyorum. Kullanıcı o formu her açtığında load eventi içerisinde de geri yüklemesini yapıyorum.

        /// <summary>
        /// Daha önceden yapılan ve saklanan grid ayarlarını getirir. **\\Dizayn\\GridDizaynlar\\Kullanıcı Dizaynlar\\
        /// </summary>
        /// <param name="grid">Görünümü getirilecek GridView'i gönderin</param>
        /// <param name="form_adi">Ayrıcı olan form adını gönderin</param>
        public void ekran_gridAyarla(GridView grid, string form_adi)
        {
            string fileName = Bt.glb.Grid_XML_Path + form_adi + ".xml";
            try
            {
                grid.RestoreLayoutFromXml(fileName);
            }
            catch (System.IO.FileNotFoundException)
            {

            }
        }

Yukarıdaki kodlar ile de dışarı aktarılmış olan GridView Ekran Dizayn dosyasını da geri yüklüyorum. Burada ilgili formdaki GridView için hiç GridView Ekran Dizaynı  yapılmamış olabilir yani aradığımız dosya adında bir dosya olmayabilir ya da dosya olsa bile yükleme esnasında bir hata yaşanmış olabilir. Olası bir dosya bulunamadı sorunu için de Try Cacth ile programın hata vermesini engelliyorum.

Elbette bu kodlarımda EkranAyarlari adını verdiğim bir class dosyam içerisinde yer alıyorlar. Bu class içerisinde bir kaç farklı işlem daha yer alıyor.


C# DevExpress GridView Ekran Dizaynını Kaydetmek dersimde bu kadardı arkadaşlar. Diğer derslerde görüşürüz.

C Sharp Eğitim Seti eğitimi sayfasına gitmek için tıklayınız. Derslerime özel olarak hazırladığım Github Projeme bu bağlantıdan ulaşabilirsiniz…

Sağlıcakla ve takipte kalın. ?

Bu yazıya tepkiniz ne oldu?

Yazar Hakkında

Lise Ağ Sistemleri ve Yönetimi bölümü, üniversite Bilgisayar Programcılığı bölümü Ön Lisans, Yönetim Bilişim Sistemleri Lisans öğrenimi aldım. Askerlik görevimi tamamladım. Uzmanlık alanım; C# ve SQL Programlama dilleri ile müşteri odaklı, kullanıcı dostu ERP ve CRM gibi sistemleri geliştirmektir. Ayrıca şuanda PHP ve MYSQL alanında projeler geliştirmekteyim. C++, Phyton, Xamarin, MVC gibi konuları öğrenmek ve kendimi geliştirme çabası içerisindeyim. Discord için: https://discord.gg/FBxZeHu9

Değerli yorumlarınızı bekliyorum. :)