Son Haberler
Anasayfa / Yazılım / C# / Mouse’da Hangi Tuşa Basıldı?

Mouse’da Hangi Tuşa Basıldı?

Bu örneğimde mouse’a tıklandığında hangi tuşa tıklanmış bunu öğrenebileceğimiz uygulama yapmak istiyorum. Bunun için bir Windows uygulaması C# projesi oluşturacağız. Projemizi oluşturduktan sonra formumuza bir adet buton sürükleyelim.

Buton adını ben değiştirdim btn1 dedim Text özelliğine de Buton yazdım, çok mühim değil. Şimdi yapmak istediğim olay şu aslında, ben bu form üzerinde bu butona tıkladığımda Mouse’un hangi tuşu ile tıklanmış bunu bulmak istiyorum.

Bunun için Buton kontrolümü seçiyorum ve event listesinden Mouse_Down eventini seçip çift tıklıyorum. İlgili event handler oluşuyor.

Daha sonra kodlarımı aşağıdaki gibi yazıyorum :

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

        private void btn1_MouseDown(object sender, MouseEventArgs e)
        {
            switch (e.Button)
            {
                case MouseButtons.Left:
                    MessageBox.Show("Mouse üzerinde sol tuşa basıldı");
                    break;
                case MouseButtons.Middle:
                    MessageBox.Show("Mouse üzerinde scroll tuşuna basıldı");
                    break;
                case MouseButtons.Right:
                    MessageBox.Show("Mouse üzerinde sağ tuşa basıldı");
                    break;              
                default:
                    break;
            }
        }
    }
}

Kullanmış olduğum event Mouse_Down eventi. Bu event mouse ile kontrol üzerinde tıklama yapıldıktan sonra tetiklenen bir event. Bu eventin MouseEventArgs e parametresi ile mouse üzerinde hangi tuşa basılmış bunu okuyabiliyorum. Bu parametre ile ayrıca e.Click diyerek mouse üzerinde kaç defa click yapılmış sayabilirim. Ya da Delta diyerek Scroll tuşu kaç defa çevrilmiş sayılabilir. Location diyerek mouse pointerin konumu alınabilir, okunabilir. X diyerek x yönünde, Y diyerek y koordinatında mouse imleç konumu okunabilir. Button özelliğinde ayrıca XButton1 ve XButton2 gibi ve Middle gibi özelliklerde mevcut bunlarda yeni mouselar için özellikle ekstra tuşları okumak amacı ile kullanılıyor.

Şimdi birde DialogResult’a değinelim. Projeme ikinci bir form ekliyorum. Bunun için sağda Proje adımı seçip üzerinde sağ tıklayıp Add New Item deyip buradan Windows form diyorum. İkinci formuma iki adet buton sürüklüyorum.

Ayarlarım :

Biri = Name : btnOK – Text özelliği ise : OK DialogResult : OK diyelim
Diğeri = Name : btnCancel – Text : Cancel DialogResult : Cancel diyelim

Daha sonra Form2’nin kendisini seçiyorum ve onunda özellik ayarlarını şöyle ayarlıyorum :

AcceptButton : btnOK
CancelButton : btnCancel

Sonra tekrar form1’e dönüyorum. Buraya bir buton daha sürüklüyorum. Bu butonun adını btnFrm2 diyorum. Text özelliğini ise Form2’ye git diyorum.

Daha sonra btnFrm2 butonuna çift tıklıyorum ve click eventine aşağıdaki kodları yazıyorum :

private void button2_Click(object sender, EventArgs e)
        {
            Form2 fr2 = new Form2();
            DialogResult sonuc = fr2.ShowDialog();
            if (sonuc == DialogResult.OK)
            {
                MessageBox.Show("OK seçildi");
            }
            else
            {
                MessageBox.Show("Cancel seçildi");
            }
        }

Böylelikle Form2Eye gittikten sonra OK tuşunu ya da Cancel tuşunu seçtiğimi kullanıcıya bildirebilirim. Aynı şekilde Enter ya da ESC tuşuna bastığımda da aynı işlemleri yapar.

Aşağıdaki linkten uygulamayı indirebilirsiniz.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir