在处理触摸输入时遇到问题。
我的应用程序(Winforms)使用2个面板。
panel1 :输入大喊大叫的应用程序(集中)
panel2 :虚拟键盘应用程序(如果有帮助,则位于flowLayoutPanel内部)
我使用SetParent固定了每个应用程序。
虚拟键盘应用程序将覆盖CreateParams,如下所示:
protected override CreateParams CreateParams
{
get
{
const int WS_EX_NOACTIVATE = 0x08000000;
CreateParams param = base.CreateParams;
param.ExStyle |= WS_EX_NOACTIVATE;
return param;
}
}
将使用常规鼠标输入,并且虚拟键盘无法聚焦(单击后按钮看上去聚焦,但这不是问题)
使用触摸屏按任何按钮都不会将键发送到先前的焦点应用程序(与使用鼠标相反)。
通常使用SendKeys.SendWait。
应用程序的其他部分通过使用SetForeGroundWindow + SendKeys.SendWait与panel1中的应用程序进行交互,这令人惊讶地与触摸输入配合使用。
我不打算更改主应用程序,但是由于鼠标单击有效而触摸单击无效,因此我无法解释该行为。
我们非常感谢您的帮助。