19 Temmuz 2013 Cuma

Windows Forms Control Library Project İle Gelişmiş Buton Kontrolü Yapımı 2


Merhaba arkadaşlar bugünkü blog yazımda daha önceden yazmış olduğum (Windows Form Control Library Project İle Gelişmiş Buton Kontrolü Yapımı) yazısına devam niteliğinde yaptığımız kontrole ait diğer özellikleri inceleyip kontrolümüze yeni özellikler katmaya çalışacağız.
Senaryo

Developer kontrole kod yazmadan property değerlerini girecek messagebox oluşturabilecek. Diğer bir özellik olarak developer butona ait settextbox property sine string olarak girdiği bir textbox nesnesine guid oluşturup yazacak. Diğer bir işlemde eğer butonun commandexitform property sine bool olarak girilen değere göre butonun bulunduğu formu kapatacak komutu işleteceğiz.

Kod yazmaya başlayalım

İlk olarak Messagebox oluşturacak işlem için property değerleri oluşturacağız.

        private bool _Command_MesaageShowDialog = false;

        public bool Command_MessageShowDialog
        {
            get
            {
                return _Command_MesaageShowDialog;
            }

            set
            {
                _Command_MesaageShowDialog = value;
            }
        }

        private string _MessageBox_Message = "İşlem Yapmak İstediğinize Eminmisiniz?";

        public string MessageBox_Message
        {
            get
            {
                return _MessageBox_Message;
            }
            set
            {
                _MessageBox_Message = value;
            }
        }
        
        private string _MessaageBox_Baslik = "Uyarı";

        public string MessaageBox_Baslik
        {
            get
            {
                return _MessaageBox_Baslik;
            }
            set
            {
                _MessaageBox_Baslik = value;
            }
        }

Şimdi Formu kapatmak için gereken property değerlerini oluşturalım

        private bool _Command_CloseForm;

        public bool Command_CloseForm
        {
            get

            {
                return _Command_CloseForm;
            }

            set
            {
                _Command_CloseForm = value;
            }
        }

Son  olarak formda bulunan bir textbox nesnemize ait name değerini atamamız için gereken property değerini oluşturalım

        private bool _CreateGuidWriteTextBox;

        public bool CreateGuidWriteTextBox
        {
            get
            {
                return _CreateGuidWriteTextBox;
            }

            set
            {
                _CreateGuidWriteTextBox = value;
            }
        }

        private string _SetTextBoxName="";

        public string SetTextBoxName
        {
            get
            {
                return _SetTextBoxName;
            }
            set
            {
                _SetTextBoxName = value;
            }
        }

Gereken tüm property tanımlamalarını yapmış olduk. Şimdi Click event imize gerekli kodları yazalım

Öncelikle bilmemiz gereken kontrolümüzün kullanıldığı forma nasıl erişebiliriz bu işlem için

     Form frm = this.FindForm(); kodunu kullanarak yapabiliriz. FindForm sınıfı bize kontrolün kullanıldığı form nesnesinin dönmesini sağlar.

Click Event Kodumuz.
            if (CreateGuidWriteTextBox)
            {
                Form frm = this.FindForm();
//Kontrolün kullanıldığı formu frm olarak tanımlıyoruz.
                var textbox = from s in frm.Controls.OfType<TextBox>() where s.Name == SetTextBoxName select s;
//Güzel bir linq sorgusuyla formda bulunan textbox nesneleri içindeki name değeri SetTextBoxName değerine eşit olanı alıyoruz.
                foreach (TextBox item in textbox)
                {
                    item.Text = new Guid().ToString();
                }      
//linq sorgumuzdan dönen textbox listesinde döngüyle nesnelere yeni oluşturduğumuz guid değerini yazıyoruz.
            }
            else if (Command_CloseForm)
            {
//Eğer form kapansın komutu verilmişse ve messagebox açılsın komutu verilmişse messagebox oluşturup kullanıcı yanıtını alıyoruz kullanıcıformu kapatmak istiyorsa formu close metodunu kullanarak kapatıyoruz.
this.DialogResult = DialogResult.Yes;
                if (Command_MessageShowDialog) { this.DialogResult = MessageBox.Show(MessageBox_Message, MessaageBox_Baslik, MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (this.DialogResult != DialogResult.Yes) return; }
                using (Form frm = this.FindForm())
                { frm.Close(); }

            }
            else if (Command_MessageShowDialog)
            {
//Eğer form kapansın komutu verilmişse ve messagebox açılsın komutu verilmişse messagebox oluşturup show metodunu kullanarak kullanıcının işlem yapmasını sağlıyoruz.
                this.DialogResult = MessageBox.Show(MessageBox_Message, MessaageBox_Baslik, MessageBoxButtons.YesNo, MessageBoxIcon.Question);
            }

Windows Forms Control Library Project İle Gelişmiş Buton Kontrolü Yapımı 2 Konulu blog yazımızın sonuna gelmiş olduk.

Malik Bakacak

.Net Developer




Hiç yorum yok:

Yorum Gönder