【问题标题】:How do I make the virtual keyboard enter text into a textbox in WinForms application?如何让虚拟键盘在 WinForms 应用程序的文本框中输入文本?
【发布时间】:2014-02-03 20:16:30
【问题描述】:

我有一个包含按钮和文本框的 Windows 窗体应用程序。在“button_click_event”处执行此代码:

System.Diagnostics.Process.Start("osk.exe");

键盘显示,但当我在所述键盘上键入时,文本框中没有出现任何文本。

【问题讨论】:

  • 确保文本框聚焦,然后切换到键盘并输入内容。

标签: c# winforms virtual-keyboard


【解决方案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 代码中没有可编辑的内容,虚拟键盘将其数据发送到当时的焦点。我提供的代码将起作用并回答您的问题。
  • 先生,我怎样才能关闭这个键盘
  • 您可以使用键盘上的关闭按钮,也可以终止您启动的进程,我会将后者的代码放在我的答案中。我真的想知道你是否会问这个。
猜你喜欢
  • 2015-11-01
  • 2018-05-27
  • 2017-10-15
  • 2014-03-27
  • 1970-01-01
  • 2015-09-03
  • 1970-01-01
  • 2013-12-05
  • 1970-01-01
相关资源
最近更新 更多