文本框在C#中失去焦点时自动隐藏触摸键盘

时间:2014-12-26 09:11:30

标签: c# wpf visual-studio

我在WPF中有一个带有两个textBox的小应用程序。其中一个必须在获得焦点时显示触摸键盘。使用下一个代码是正确的:

Process theTouchKeyboardProcess = null;
...

private void textBoxA_GotFocus(object sender, RoutedEventArgs e)
{
   theTouchKeyboardProcess = Process.Start(@"C:\Program Files\Common Files\Microsoft Shared\ink\TabTip.exe");
}

问题是我想在另一个textBox获得焦点时隐藏触摸键盘。我试过这样做:

private void textBoxA_LostFocus(object sender, RoutedEventArgs e)
{
   try
   {
      theTouchKeyboardProcess.Kill();
   }
   catch (Exception ex)
   {
      Console.WriteLine(ex.StackTrace);
   }         
}

但它发布了一个例外。

问题是,这样做的最佳方法是什么?

感谢。

1 个答案:

答案 0 :(得分:1)

我不知道什么是最好的方法,但我在我的项目中使用了以下代码,它只是起作用。

Process[] processes = Process.GetProcessesByName("TabTip");
foreach (Process process in processes)
{
    process.Kill();
}