Как узнать, какое физическое устройство нажимало кнопку в C #? - PullRequest
5 голосов
/ 26 августа 2010

У меня есть форма с кнопками.Это приложение предназначено для запуска на компьютере с сенсорным экраном.Когда кнопка нажата, я бы хотел знать, нажата ли она мышью или сенсорным экраном

Возможно ли это?Если да, то как?

Ответы [ 2 ]

3 голосов
/ 26 августа 2010
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.
    }
}

Это грубый способ сделать это, потому что он будет ловить исключение в любое время, когда кнопка «нажата» чем-то другим, кроме мыши, сенсорного экрана или возврата клавиатуры. Но это сделает работу :) 1002 *

1 голос
/ 27 августа 2010

Принимая ответ Wildhorn, вы избегаете исключений:

MouseEventArgs thisObject = e as MouseEventArgs

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

Это не сильно отличается, но у вас нет накладных расходов на обработку исключений. Кроме того, вы можете попробовать несколько бросков, пока не получите правильный.

...