2014-12-26 3 views
1

У меня есть небольшое приложение в WPF с двумя текстовыми полями. Один из них должен отображать Touch Keyboard, когда он фокусируется. Он работает correclty с помощью следующего кода:Скрыть автоматически сенсорную клавиатуру, когда текстовое поле потеряло фокус в C#

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); 
    }   
} 

Но оно запустило исключение.

Вопрос в том, что является лучшим способом сделать это правильно?

Спасибо.

+2

Какое исключение выбрасывается? – opewix

ответ

1

Я не знаю, что является лучшим способом, но я использовал следующий код в своем проекте, он просто сработал.

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

Спасибо, он работает. – Jafuentes