如何让虚拟键盘在 WinForms 应用程序的文本框中输入文本?
Posted
技术标签:
【中文标题】如何让虚拟键盘在 WinForms 应用程序的文本框中输入文本?【英文标题】:How do I make the virtual keyboard enter text into a textbox in WinForms application? 【发布时间】:2014-02-03 20:16:30 【问题描述】:我有一个包含按钮和文本框的 Windows 窗体应用程序。在“button_click_event”处执行此代码:
System.Diagnostics.Process.Start("osk.exe");
键盘显示,但当我在所述键盘上键入时,文本框中没有出现任何文本。
【问题讨论】:
确保文本框聚焦,然后切换到键盘并输入内容。 【参考方案1】:发生的情况是屏幕键盘正在向焦点控件发送信息,在您的情况下,焦点控件是启动键盘的按钮。创建键盘后尝试将焦点设置到您的文本框。
private void button1_Click(object sender, EventArgs e)
System.Diagnostics.Process.Start("osk.exe");
//SetFocus to your TextBox here
textBox1.Focus();
要关闭它,请执行以下操作
private void button2_Click(object sender, EventArgs e)
var procs = Process.GetProcessesByName("osk");
if (procs.Length != 0)
procs[0].Kill();
【讨论】:
是的..这工作正常,先生,但我有一个疑问,这个命令(System.Diagnostics.Process.Start(“osk.exe”);实际上启用了虚拟键盘? @user3252014 这是运行屏幕键盘所需的操作。键盘是一个外部应用程序,因此您需要使用 Process.Start 来运行它。 @user3252014 代码中没有可编辑的内容,虚拟键盘将其数据发送到当时的焦点。我提供的代码将起作用并回答您的问题。 先生,我怎样才能关闭这个键盘 您可以使用键盘上的关闭按钮,也可以终止您启动的进程,我会将后者的代码放在我的答案中。我真的想知道你是否会问这个。以上是关于如何让虚拟键盘在 WinForms 应用程序的文本框中输入文本?的主要内容,如果未能解决你的问题,请参考以下文章
如何拦截所有键盘事件并防止在 WinForms 应用程序中失去焦点?