C# Mouse Koordinatlarını Almak

C# Mouse Koordinatlarını Almak

19 Temmuz 2018 0 Yazar: Mustafa BÜKÜLMEZ
Toplam Görüntülenme : 111
Yaklaşık okuma süresi : 4 DK
C# CheckState İçin Özel Metod Oluşturmak
C# DataGridView Seçilen Satırları Textbox da Gösterme
C# Mouse Koordinatlarını Almak
5 (100%) 1 Oy

C# Mouse Koordinatlarını Almak , yazımız ile c sharp eğitimlerimize devam ediyoruz. Bu yazımızda biraz ileri gidelim dedim ve bu yazıyı yazmak istediğim. Nerede işinize yarar bilemiyorum ancak bana bir projemde gerek olmuştu. Tabi fantastik bir işti ama olsun. 😀 Belki sizinde işinize bir yerde yarar. Gelin C# Mouse Koordinatlarını Almak işlemini görelim.

 

C# Mouse Koordinatlarını Almak

Öncelikle namespace’imizi ekleyelim.

using System.Runtime.InteropServices;

Namespace’i ekledikten sonra aşağıdaki kodları ekleyelim.

[StructLayout(LayoutKind.Sequential)]
        public struct POINT
        {
            public int X;
            public int Y;
            public static implicit operator Point(POINT point)
            {
                //return new Point(point.X - 175, point.Y - 100);               
                return new Point(point.X, point.Y);               
                //Normal şartlarda bir üst satırdaki gibi olması gerekiyor.
                //Verdiğim bu ( - ) değerlerin açıklması aşağıdadır.                
            }
        }     
        [DllImport("user32.dll")]
        public static extern bool GetCursorPos(out POINT lpPoint);
        public static Point GetCursorPosition()
        {
            POINT lpPoint;
            GetCursorPos(out lpPoint);           
            return lpPoint;
        }

Bu kodlarımız ile mouse koordinatlarını alabiliyoruz.

Yorum satırı olarak da yazdım. Zaten kodlarda da görüyorsunuz -175 ve -100 ifadelerini. Bunun sebebi bir nesneyi run-time da hareket ettirmek için burada oluşan değeri alıp nesnenin location özelliğine atıyorum. Ancak nesneyi hareket ettirdiğimizde de tam bu ( – ) değerler kadar cursor’dan uzakta oluyor. Yani nesne tam olarak cursor’un ucunda durmuyor. Bu nedenle bu şekilde cursor’dan gelen koordinatlara müdahele ederek amacımıza ulaşıyoruz.

Edit: Sonradan farkettim ki ( – ) değer vererek düzeltmek sadece bir ekran için normal çalışıyor. Daha doğrusu bir ekran çözünürlüğüne göre. Çünkü yukarıdaki kod, Farenin ekran üzerindeki koordinatlarını alıyor. Bize Form üzerindeki koordinatları lazım oluyor. Form’u maximize yapsak bile tam olarak işe yaramıyor.

Daha basit bir yöntemi yok mu derseniz de var. İşte bu 😀

MessageBox.Show("X: " + Cursor.Position.X + " Y: " + Cursor.Position.Y);

Farenin Form üzerinde bulunduğu koordinatı alma işlemi de

Point CursorPoint = this.PointToClient(Cursor.Position);

Şeklindedir. Ve bu istediğim şeyi vermiş oldu…

Bu son iki kodu daha sonradan buldum ve dersi güncelledim. Çünkü farklı monitöre geçtiğimde ilk kodlar çalışmadı. 🙂 


C# Mouse Koordinatlarını Almak , yazımızda bu kadar dostlar. Diğer derslerimiz de görüşmek üzere.

C Sharp Eğitim Seti ve ERP Programlama eğitimi sayfasına gitmek için tıklayınız.

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

C# CheckState İçin Özel Metod Oluşturmak
C# DataGridView Seçilen Satırları Textbox da Gösterme

Liseden, Ağ Sistemleri ve Yönetimi bölümünden mezun oldum. Üniversiteden (2 yıllık), Bilgisayar Programcılığı bölümünden mezun oldum. Şuanda da AÖF, Yönetim Bilişim Sistemleri bölümünde okumaktayım.

Uzmanlık alanlarım; Windows Sistemleri, HTML, CSS, C# ve SQL’dir.

Hobi olarak uğraştığım genel konular, Photoshop, After Affects, Corel Draw’dır.Film, YABANCI dizi, Anime izlemeyi ve Manga okumayı severim. Arkadaşlarımla yürüyüş yapmayı ve grup olarak aktivitelere gitmeyi severim. Geri kalan zamanlarımın tümü bilgisayar karşısında geçer.