触摸屏将重点转移到虚拟键盘上

时间:2018-07-31 19:04:10

标签: c#

在处理触摸输入时遇到问题。

我的应用程序(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中的应用程序进行交互,这令人惊讶地与触摸输入配合使用。

我不打算更改主应用程序,但是由于鼠标单击有效而触摸单击无效,因此我无法解释该行为。

我们非常感谢您的帮助。

0 个答案:

没有答案