在 Windows 10 中,为什么 Visual Basic 输入框不会出现内置键盘?

在 Windows 10 中,为什么 Visual Basic 输入框不会出现内置键盘?

我第一次在 Windows 10 Pro x64 上安装了 32 位桌面应用程序。之前它已在 Windows 7 上成功使用。

它是一台带有外部触摸屏显示器的 PC,以 Kiosk 模式使用,因此用户唯一可以使用的就是程序本身。如果没有物理键盘或关闭程序,用户就无法看到任务栏或系统托盘。

在设置/设备/打字下,我选择了“当不处于平板电脑模式且没有连接键盘时显示触摸键盘或手写面板”。

应用程序只有几个地方允许用户输入。键盘在 Windows 登录时以及在使用 TextBox 的屏幕上显示良好。但有几个地方使用通用的 InputBox 对话框,键盘不会出现。

我尝试了“将标准键盘布局添加为触摸键盘选项”,但似乎没有效果。

将 OSK 设置为自动启动(我以前在 Windows 7 中就是这么做的)非常尴尬,因为你不能将其最小化,否则它会丢失到隐藏的系统托盘中,而且与其他键盘相比它的尺寸过大。

我是否需要检查其他设置才能使其正常工作?

更新:TextBox 打开键盘的原因是它被分配了一个密码字符。普通的 TextBox 也不会打开键盘。

答案1

使用该程序并进行进一步研究,我可以总结出键盘在 WinForm 程序中自动出现的位置。

  • TextBoxPasswordChar设置属性。
  • ComboBox属性DropSownStyle设置为DropDown的A。

我发现没有办法让InputBox使用触摸。我最终用 TextBox 创建了一个自定义表单,并将一些自定义例程附加到的 Enter 和 Leave 事件TextBox

由于这不是编程网站,因此我就简短地说一下。

我使用来TabletDeviceCollection查看计算机是否有TabletDevice带有TypeTabletDeviceType.Touch

如果确实如此,我就会像这样启动键盘:

Process.Start("C:\Program Files\Common Files\Microsoft Shared\ink\TabTip.exe")

然后为了关闭它,我调用非托管Win32函数 FindWindow("IPTIP_Main_Window", "")来获取句柄,然后调用另一个 WIn32 向其发送消息。SendMessage(handle, WM_SYSCOMMAND, SC_CLOSE, 0)

要了解更多信息,请搜索这些短语。

相关内容