Event - Delegate Örnekleri etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
Event - Delegate Örnekleri etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

6 Haziran 2013 Perşembe

C Sharp Uygulamalar Event Delegate Kullanarak Formlar Arasında Olay Tetikleme



KONU : C Sharp Uygulamalar - C Sharp ( C# ) form event delegate kullanarak olay tetikletme ve olayı bir metoda bağlama.
ETİKETLER: csharp event - csharp event handler - csharp events - csharp event example - csharp event and delegate - csharp event add - csharp delegate - csharp delegate kullanımı - csharp delegate nedir - csharp delegate event - csharp delegate example - csharp delegate örnekleri - csharp event örnekleri - csharp form event - csharp delegate vs event - c# event - c# event kullanımı - c# event example - c# delegate - c# delegate kullanımı - c# delegate example - c# delegate örnekleri.




UYGULAMAYI İNDİ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 C_Sharp_Event_Delegate
{
    public partial class Form1 : Form
    {
        //Delegate oluşturalım, parametre olarak string bir değer alsın

        public delegate void tetikleyici(string tuşabasıldı);

        //Delegate den bir olay oluşturalımç bunu istediğimiz her yerde 
        //çağırmak için statik yapalım

        public static event tetikleyici tetikevent; 

        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            Form2 f2 = new Form2();

            //form2 penceresini göstertelim

            f2.Show(); 
        }

        private void button1_Click(object sender, EventArgs e)
        {
            //button1  tıklandığında bizim oluşturduğumuz olay tetiklensin
            //bunu da Form2 listbox içinde görelim

            tetikevent(button1.Text);
        }

        private void button2_Click(object sender, EventArgs e)
        {
            //button2  tıklandığında bizim oluşturduğumuz olay tetiklensin
            //bunu da Form2 listbox içinde görelim

            tetikevent(button2.Text);
        }

        private void button3_Click(object sender, EventArgs e)
        {
            //button3  tıklandığında bizim oluşturduğumuz olay tetiklensin
            //bunu da Form2 listbox içinde görelim

            tetikevent(button3.Text);
        }
    }
}



//////////////////////////////////////////////////////////////////////////
// Form2.cs
//////////////////////////////////////////////////////////////////////////

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

        private void Form2_Load(object sender, EventArgs e)
        {
            Form1.tetikevent +=new Form1.tetikleyici(Form1_tetikevent);
             
        }

        void Form1_tetikevent(string tuşabasıldı)
        {
            listBox1.Items.Add(tuşabasıldı);
        }
    }
}

UYGULAMAYI İNDİR

11 Mayıs 2013 Cumartesi

C Sharp Uygulamalar Buton Tıklanma Sayısını Hesaplama




KONU : C Sharp Uygulamalar - C Sharp ( C# ) forma eklenen butonun kaç kere tıklandığını gösteren uygulama. Dinamik olarak form buton ekleme ve tıklanma olayı atama (button click event). Tıklama sayısını mesaj kutusu ile gösterme.




UYGULAMAYI İNDİ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 C_Sharp_Form_Buton_Kac_Kere_Tiklandi
{
    public partial class Buton_Kac_Kere_Tiklandi : Form
    {
        public Buton_Kac_Kere_Tiklandi()
        {
            InitializeComponent();
            InitializeMyComponent();
        }

        //global bir değişken tanımla
        int butona_kac_kez_tıklandi = 0;

        private void Form1_Load(object sender, EventArgs e)
        {
            Button buton = new Button();  
           
            
            // bir tane buton örneği alarak yeni bir buton oluşturalım
            
            buton.Name = "yeni_buton";  // buton yeni_buton ismini verelim
            buton.Text = "Tıkla";   //butonun Text ine Tıkla ismini verelim

            buton.Location = new Point(22, 22);  
            
            // butonun formda yer leşim yeri olarak x=22, y=22 noktasına
            //yerleştirelim

            buton.Size = new Size(50, 50); // butonu boyutlarını ayarlayalım

            //oluşturulan butonu forma ekleyelim
            this.Controls.Add(buton);

            buton.Visible = false;// butonun görünmesini istemiyorsak visible özelliğini false yap

            buton.Visible = true;// butonun görünmesini istiyorsak visible özelliğini true yap

            // butona click event(click olayı bağlama)
            // butona tıklandığı zaman yapılacak işlemleri
            // buton_Click isimdeki metoduna yazılır.
            // bu olay olduğunda buradaki işlemler gerçekleştirilir
            
            buton.Click += new EventHandler(buton_Click);
        }

        //buton tıklandığı zaman çalışak fonksiyon
       
        private void buton_Click(object sender, EventArgs e)
        {
            //Butona tıklandığında bu method içindeki işlemler yapılacak
            // buton her tıklandığında bu metod çalışacak
            // burada değişkeni bir artır

            butona_kac_kez_tıklandi++; 
        
            //tıklanma sayısı tutmak için bu değişkeni her seferinde bir arttır
            //mesaj olarak buton kaç kere basıldığını göster.
            
            MessageBox.Show("Butona basıldı. \n toplam tıklanma sayısı = " + butona_kac_kez_tıklandi, "Uyarı", MessageBoxButtons.OK, MessageBoxIcon.Warning);
        }

        private void InitializeMyComponent()
        {
            // ana pencereyi oluştumak için gerekli olan kod.
            
            this.SuspendLayout();
            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
            this.ClientSize = new System.Drawing.Size(437, 296);
            this.Name = "Buton_tiklanma_sayisi";
            this.Text = "Butona kaç kere tıklandığını hesaplama";
            this.Load += new System.EventHandler(this.Form1_Load);
            this.ResumeLayout(false);

        }
    }
}


UYGULAMAYI İNDİR

5 Nisan 2013 Cuma

C Sharp Uygulamalar Event - Delegate Tanımlama ve Tetikleme



KONU : C Sharp Uygulamalar - C sharp form Event - Delegate örnek uygulama, Dinamik olarak yeni form açma, yeni formlar arası olay (event) kullanarak bağlantı kurma
ETİKETLER: csharp event - csharp event handler - csharp events - csharp event example - csharp event and delegate - csharp event add - csharp delegate - csharp delegate kullanımı - csharp delegate nedir - csharp delegate event - csharp delegate example - csharp delegate örnekleri - csharp event örnekleri - csharp form event - csharp delegate vs event - c# event - c# event kullanımı - c# event example - c# delegate - c# delegate kullanımı - c# delegate example - c# delegate örnekleri.




UYGULAMAYI İNDİ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 C_Sharp_Form_Delegate_Events
{
    public partial class Delegate_Events_Form : Form
    {

        private int formNo = 0;
        private System.Windows.Forms.Button btnYeniFormAc;

        //delege tanımlama
        public delegate void delegateDeneme(int formNumarasi);
        // olay tanımlama
        public event delegateDeneme eventDeneme;

        public Delegate_Events_Form()
        {
            InitializeComponent();
            InitializeMyComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            this.eventDeneme += new delegateDeneme(Form1_eventDeneme);
        }

        public void yeniFormAc()
        {
            //yeni bir form oluştur
            MyForm form = new MyForm();

            //her açılan form yeni bir id verelim
            //böylece hangi butonu tıklandığını tespit edebiliriz
            form.formNo = this.formNo++;
            //form da bir tane dinamik buton oluşturalım
            Button btn = new Button();
            btn.Text = "Aktifleştir";
            btn.Name = form.formNo.ToString();
            btn.Size = new Size(100, 30);
            btn.Click += new EventHandler(btn_Click);
            //oluşturduğumuz bu butonu dinamik oluşturduğumyz forma ekleyelim
            form.Controls.Add(btn);
            //form için icon yükle
            form.Icon = C_Sharp_Form_Delegate_Events.Properties.Resources.Turkiye;
            //dinamik oluşan formu göster
            form.Show();
        }
       
        void btn_Click(object sender, EventArgs e)
        {
            //oluşturulan butonun tıklama olayı yazdığımız olayı tetiklesini istiyoruz
            eventDeneme(int.Parse((sender as Button).Name));
        }

        void Form1_eventDeneme(int formNumarasi)
        {
            MessageBox.Show("Acilan form no = " + formNumarasi);
        }

        private void btnYeniFormAc_Click(object sender, EventArgs e)
        {
            yeniFormAc();
        }

        private void InitializeMyComponent()
        {
            this.btnYeniFormAc = new System.Windows.Forms.Button();
            this.SuspendLayout();
            // 
            // btnYeniFormAc
            // 
            this.btnYeniFormAc.Location = new System.Drawing.Point(72, 21);
            this.btnYeniFormAc.Name = "btnYeniFormAc";
            this.btnYeniFormAc.Size = new System.Drawing.Size(131, 47);
            this.btnYeniFormAc.TabIndex = 0;
            this.btnYeniFormAc.Text = "Yeni Form Aç";
            this.btnYeniFormAc.UseVisualStyleBackColor = true;
            this.btnYeniFormAc.Click += new System.EventHandler(this.btnYeniFormAc_Click);
            // 
            // Form1
            // 
            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
            this.ClientSize = new System.Drawing.Size(273, 180);
            this.Controls.Add(this.btnYeniFormAc);
            this.Name = "Form1";
            this.Text = "Ana Form";
            this.Load += new System.EventHandler(this.Form1_Load);
            this.ResumeLayout(false);

        }
    }

    public class MyForm : Form
    {
        public int formNo { get; set; }
    }
}



UYGULAMAYI İNDİR

18 Mart 2013 Pazartesi

C Sharp Form Uygulamalar Çoklu İş Parçacığı Oluşturma



KONU : C Sharp ( C# ) Form Uygulamalar çoklu iş parçacığı oluşturma, cross thread problemini giderme, C sharp aynı anda aynı kontrolü kullanan başka bir thread başlatma, Cross thread sorununu kontrolün invoke methodu ve delegate kullanarak çözme, C sharp multithread oluşturma.



C Sharp Form Uygulamalar Çoklu İş Parçacığı Oluşturma, CrossThread Önleme, MultiThread Oluşturma

UYGULAMAYI İNDİ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;
using System.Threading;

namespace C_Sharp_Form_Coklu_Is_Parcacık_Olusturma
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        //iki farklı thread 
        Thread thread1, thread2;

        bool threadBasladi = false;
        private void button1_Click(object sender, EventArgs e)
        {
            if (threadBasladi)
            {
                thread1.Abort();
                thread2.Abort();
            }
            threadBasladi = true;
            //thread lerin başladığında çalışacak olan methodlar
            ThreadStart threadstart1 = new ThreadStart(sayMethod1);
            ThreadStart threadstart2 = new ThreadStart(sayMethod2);
            //thread leri oluşturma
            thread1 = new Thread(threadstart1);
            thread2 = new Thread(threadstart2);
            //thread isimleri
            thread1.Name = "Thread 1";
            thread2.Name = "Thread 2";
            //threadlere verilen öncelik(thread priority)
            thread1.Priority = ThreadPriority.Normal;
            thread2.Priority = ThreadPriority.Normal;
            //Thread verilebilecek öncelikler:
            //ThreadPriority.AboveNormal;
            //ThreadPriority.BelowNormal;
            //ThreadPriority.Highest;
            //ThreadPriority.Lowest;
            //ThreadPriority.Normal;
           
            //Thread leri başlatma
            thread1.Start();
            thread2.Start();
        }

        ///          /// Birinci Thread ile başlatılan method, Cross Thread olayını önlemek için invoke ile method         ///  uygun olana kadar tekrar çağırılır         /// 
        void sayMethod1()
        {
            if (this.InvokeRequired)
            {
                this.Invoke(new DelegateStandardPattern(sayMethod1));

            }
            else
            {
                for (int i = 0; i < 1000; i++)
                {
                    listBox1.Items.Add(thread1.Name + " - " + i);
                }
            }
        }

        ///          /// İkinci Thread ile başlatılan method, Cross Thread olayını önlemek için invoke ile method         ///  uygun olana kadar tekrar çağırılır         /// 
        void sayMethod2()
        {
            if (this.InvokeRequired)
            {
                this.Invoke(new DelegateStandardPattern(sayMethod2));

            }
            else
            {
                for (int i = 0; i < 1000; i++)
                {
                    listBox1.Items.Add(thread2.Name + " - " + i);
                }
            }
        }

        public delegate void DelegateStandardPattern();
        private void SetTextStandardPattern()
        {
            if (this.InvokeRequired)
            {
                this.Invoke(new DelegateStandardPattern(SetTextStandardPattern));
                return;
            }
            this.Text = "New Text";
        }
        private void Form1_Load(object sender, EventArgs e)
        {
            //multi tread yaparken karşılan problem
            //Cross call hatası almamak için => bu değer false yapılır
            //Çapraz iş parçacığı işlemi geçerli değil: 'listBox1'              
            //denetimine oluşturulduğu iş parçacığı dışında başka bir           
            //iş parçacığından erişildi.
            //CheckForIllegalCrossThreadCalls = false;

            // Ama bu doğru işlem değildir.
            // Uygun bir patern kullanılmalıdır. Yukarıdaki gibi kontrol invoke methodu ile 
            //işlem yapılacak method tekrar çağırılır.
        }
    }
}



UYGULAMAYI İNDİR