2010-08-26 7 views
5

Düğmeli bir formum var. Bu uygulama bir dokunmatik bilgisayar üzerinde çalışacak şekilde tasarlanmıştır. Bir tuşa tıklandığında farenin veya dokunmatik ekranın tıklanıp tıklanmadığını bilmek istiyorum.C# hangi fiziksel aygıtın bir düğmeyi tıklattığını nasıl söylerim?

Bu mümkün mü? Öyleyse nasıl?

+1

Hangi İşletim Sistemini kullanıyorsunuz? XP, Win7? – ParmesanCodice

+0

UI tasarımında gerçekten kötü bir seçim gibi gözüküyor – Jonathan

cevap

3
private void button_Click(object sender, EventArgs e) 
{ 
    try 
    { 
     ((MouseEventArgs)e).Button.ToString(); 
    } 
    catch(Exception) 
    { 
     //If an exception is catch, it means the mouse was not used. 
    } 
} 

o fare ya dokunmatik ekran veya klavyenin dönüşü daha başka bir şey tarafından "tıklandığında" bir istisna zaman düğmesi yakalayacak çünkü bu, bunu yapmak için bir brüt yoldur.

MouseEventArgs thisObject = e as MouseEventArgs 

if(thisObject != null) 
{ 
//Do Something 
} 

O pek farklı değil ama istisna işleme yükü yoktur: Ama işi :) bu şekilde istisnalar atılan önler Wildhorn cevabı dan çıkarak

+1

+1 Kesintisiz kesmek için – Stimul8d

+0

Bunu yapmak için daha iyi, daha doğrudan bir yol olmalı. – Bernard

+0

@ Stimul8d Daha iyi olamazdım. –

1

yapacağız. Ayrıca, doğru olanı elde edebilmek için birden fazla oyuncuyu deneyebilirsiniz.

+0

Çok daha zarif! –

İlgili konular