【发布时间】:2011-04-04 11:12:59
【问题描述】:
我有一个带按钮的表单。此应用程序旨在在触摸屏计算机上运行。单击按钮时,我想知道它是由鼠标还是触摸屏单击的。
这可能吗?如果有,怎么做?
【问题讨论】:
-
您使用的是哪个操作系统? XP、Win7?
-
这听起来像是 UI 设计中的一个非常糟糕的选择
标签: c# mouse click button touchscreen
我有一个带按钮的表单。此应用程序旨在在触摸屏计算机上运行。单击按钮时,我想知道它是由鼠标还是触摸屏单击的。
这可能吗?如果有,怎么做?
【问题讨论】:
标签: c# mouse click button touchscreen
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.
}
}
这是一种粗暴的做法,因为只要按钮被鼠标以外的东西“点击”,无论是触摸屏还是键盘的返回,它都会捕获异常。但它会完成这项工作:)
【讨论】:
以这种方式从 Wildhorn 的回答中获取可以避免抛出异常:
MouseEventArgs thisObject = e as MouseEventArgs
if(thisObject != null)
{
//Do Something
}
这并没有太大的不同,但您没有异常处理的开销。您也可以尝试多次施法,直到找到正确的施法者。
【讨论】: