【问题标题】:How to tell what physical device clicked a button in C#?如何判断哪个物理设备单击了 C# 中的按钮?
【发布时间】:2011-04-04 11:12:59
【问题描述】:

我有一个带按钮的表单。此应用程序旨在在触摸屏计算机上运行。单击按钮时,我想知道它是由鼠标还是触摸屏单击的。

这可能吗?如果有,怎么做?

【问题讨论】:

  • 您使用的是哪个操作系统? XP、Win7?
  • 这听起来像是 UI 设计中的一个非常糟糕的选择

标签: c# mouse click button touchscreen


【解决方案1】:
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.
    }
}

这是一种粗暴的做法,因为只要按钮被鼠标以外的东西“点击”,无论是触摸屏还是键盘的返回,它都会捕获异常。但它会完成这项工作:)

【讨论】:

  • 必须有更好、更直接的方法来做到这一点。
  • @Stimul8d 说得再好不过了。
【解决方案2】:

以这种方式从 Wildhorn 的回答中获取可以避免抛出异常:

MouseEventArgs thisObject = e as MouseEventArgs

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

这并没有太大的不同,但您没有异常处理的开销。您也可以尝试多次施法,直到找到正确的施法者。

【讨论】:

  • 更优雅!
猜你喜欢
  • 2010-10-18
  • 1970-01-01
  • 1970-01-01
  • 2012-11-12
  • 2011-02-10
  • 2013-10-09
  • 1970-01-01
  • 1970-01-01
  • 2016-06-03
相关资源
最近更新 更多