1. Anasayfa
  2. Nesne Tabanlı Programlama

Visual Studio C# Dersleri – C# Events (Olaylar)


0

Olaylar (Events) Kullanıcının butona tıklaması, textbox’a bilgi yazması, listbox’dan eleman seçmesi vb.. form üzerinde gerçekleştirilen eylemlerdir.
Bir bileşen üzerinde meydana gelen olayları takip eden ve bunları yakalayan mekanizma event handler olarak adlandırılır. Event Handler ilgili olay gerçekleştiği zaman tetiklenir. Olay gerçekleştikten sonra hangi işlemlerin yapılacağı olay yöneticileri için delegeler ile temsil edilir. Bir kullanıcının fare ile tıklaması örneğin bir Click olayıdır, bir tuşa basma olayı bir Keypress olayıdır ve bu olayların sonucunda nelerin yapılması gerektiğini biz kodlarımızla belirtebiliriz.

Yeni bir olay tanımlamak için event deyimi kullanılır. Olayları tetiklemek için ise olayın ismi kullanılmaktadır. Tıpkı delegelerde olduğu gibi bir olayı bir metota bağlamak için “+=” çıkarmak için ise “-=” kullanılır. Yalnız bu noktada dikkat edilmesi gereken durum, olayların bağlanacağı metotların imza yapıları olayın türü iolan delege ile aynı olmalıdır. Buradan tabi şunu da anlayabiliriz. Bir eventten önce mutlaka bir delege tanımlanmalıdır. Event önünce access modifier tanımlanabilir, public, private, protected, internal, abstract, new override, static, virtual gibi.

Bir Windowsform application açıp formun KeyPreview özelliğini True yapıyor formun üzerine bir buton ekliyoruz…

void mesaj(object sender, EventArgs e)
        {
            MessageBox.Show("Butona Basıldı");          
        }
        void bas(object sender, KeyEventArgs e)
        {
            switch (e.KeyCode.ToString())
            {
                case "A":
                    MessageBox.Show("A Tuşuna basıldı");
            
                    break;
                case "B":
                    MessageBox.Show("B Tuşuna basıldı");
            
                    break;
            }
        }      
        private void Form1_Load(object sender, EventArgs e)
        {
            button1.Click += new EventHandler(mesaj);
            KeyDown += new KeyEventHandler(bas);    
        }

Şimdide başka bir örnek ile Events(Olaylar) konusuna devam edelim yeni bir proje oluşturup formun üzerine bir buton yerleştiriyoruz.
Burada yapacağımız butona fare ile tıklandığında farenin hangi tuşuna basılıyor onu kontrol etmek

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 WindowsFormsApplication9
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        void fare(object sender, MouseEventArgs e)
        {
            if (e.Button == MouseButtons.Left)
            {
                MessageBox.Show("Sol Tuşa Basıldı");
            }
            if (e.Button == MouseButtons.Right)
            {
                MessageBox.Show("Sağ Tuşa Basıldı");
            }
            if (e.Button == MouseButtons.Middle)
            {
                MessageBox.Show("Orta Tuşa Basıldı");
            }

        }
        private void Form1_Load(object sender, EventArgs e)
        {
            button1.MouseDown+=new MouseEventHandler(fare);

        }
    }
}
Bu İçeriğe Tepkin Ne Oldu?
  • 0
    ba_ar_l_
    Başarılı
  • 0
    gayet_yi
    Gayet İyi
  • 0
    te_ekk_rler
    Teşekkürler
  • 0
    anlamad_m
    Anlamadım
  • 6
    yetersiz
    Yetersiz
İlginizi Çekebilir
Subscribe
Bildir
guest

Bu site, istenmeyenleri azaltmak için Akismet kullanıyor. Yorum verilerinizin nasıl işlendiği hakkında daha fazla bilgi edinin.

0 Yorum
Inline Feedbacks
View all comments