我们遇到一种情况,硬件返回按钮执行特定操作,但是使用 SIP 控件上的返回按钮也会触发此操作。
是否有办法确定 KeyPressEventArg 是否来自 SIP?
/// <summary>
/// Handles the Enter button being pressed as navigation to complete the signature capture
/// </summary>
/// <param name="e">The key event args to quaify what button was pressed.</param>
public override void HandleKeyPress(KeyPressEventArgs e)
{
if (e.KeyChar == '\r') // and is not SIP '\r'
{
// need to handle only hard button not SIP
}
}
非常感谢您对此的任何启发
最佳答案
好的,找到了一种方法来做到这一点,但是我觉得这可能不兼容所有设备类型。
public void WndProc(ref Microsoft.WindowsCE.Forms.Message m)
{
if (m.Msg == WM_KEYDOWN && (m.WParam == (IntPtr)VK_RETURN && m.LParam != (IntPtr)1))
{
//Handle hard button
}
}
来自 SIP 时,按键的 LParam
似乎始终为“1”。
我将继续在我们所有的设备类型上进行测试
如果有人有更好的方法,请在下面发帖:)
关于c# - 指示 KeyPress 是否来自 SIP,而不是硬按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13793923/