5

ボタン付きのフォームがあります。このアプリケーションは、タッチスクリーン コンピューターで実行するためのものです。ボタンがクリックされたとき、それがマウスまたはタッチスクリーンのどちらでクリックされたかを知りたいです。

これは可能ですか?もしそうなら、どのように?

4

2 に答える 2

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.
    }
}

タッチスクリーンまたはキーボードのリターンのいずれかで、マウス以外の何かによってボタンが「クリック」されるたびに例外がキャッチされるため、これは大まかな方法​​です。しかし、それは仕事をします:)

于 2010-08-26T19:43:33.150 に答える
1

このようにWildhornの回答から取得すると、例外がスローされるのを回避できます。

MouseEventArgs thisObject = e as MouseEventArgs

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

それほど違いはありませんが、例外処理のオーバーヘッドはありません。また、適切なキャストが得られるまで、複数のキャストを試すこともできます。

于 2010-08-26T20:40:55.287 に答える