我开发了一个用于触摸屏计算机的Windows窗体应用程序。当用户点击输入框(文本框)时,是否可以显示键盘?我怎么能这样做?
答案 0 :(得分:4)
您是否知道Windows有屏幕键盘?
在Windows 7中,它是所有程序> Accesseries>轻松访问>在屏幕键盘上。
如果你愿意,你可以自己编写,但是当我不想拿起键盘时,我会一直使用Windows。
您可以创建一个快捷方式:
位置为%windir%\ system32 \ osk.exe
所以要在TextBox_Click事件中启动它(或者你要触发的任何事件)
//应该工作,我还没有测试过。 System.Diagnostics.Process.Start(" C:\ Windows \ System32下\ osk.exe&#34);
只是一个更新:在我的机器上工作时我尝试运行该代码时遇到错误(我将其构建为测试)并且我必须将osk.exe复制到另一个目录然后启动它并且它有效。 / p>
/// <summary>
/// Test to show launching on screen board (osk.exe).
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void textBox1_Click(object sender, EventArgs e)
{
try
{
Process.Start(@"c:\Temp\OSK.exe");
}
catch (Exception error)
{
string err = error.ToString();
}
}
此代码有效。
答案 1 :(得分:4)
您的示例为我显示错误:
“无法启动屏幕键盘”
我发现这段代码运行正常,没有任何错误:
static void StartOSK()
{
string windir = Environment.GetEnvironmentVariable("WINDIR");
string osk = null;
if (osk == null)
{
osk = Path.Combine(Path.Combine(windir, "sysnative"), "osk.exe");
if (!File.Exists(osk))
osk = null;
}
if (osk == null)
{
osk = Path.Combine(Path.Combine(windir, "system32"), "osk.exe");
if (!File.Exists(osk))
{
osk = null;
}
}
if (osk == null)
osk = "osk.exe";
Process.Start(osk);
}
答案 2 :(得分:1)
我认为您必须创建一个新表单来创建键盘并在文本框中单击
启动此表单答案 3 :(得分:1)
我认为你可以使用。 System.Diagnostics.process.start
System.Diagnostics.Process.Start("osk.exe");