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 回答