29230


お世話になっています。

C#のWPFでアプリを開発しています。  
Windows10のタブレットモードで、TextBoxをタップすると自動的にタッチキーボードが表示されますが、これを表示させないようにしたいです。

タッチキーボードの代わりに、画面内にキーボード風にボタンを並べてそれをタッチして入力するようにしたいですが、自動的に表示されるタッチキーボードが邪魔になるためです。

以下試してみたことです。

  * テキストボックスのPreviewGotKeyboardFocusイベントでEventArgsのHandledをtrueにする。  
→キーボードは出なくなりましたがフォーカスも当たらなくなりました。

  * テキストボックスのGotFocusイベントでWindowsのプロセスからtabtipを探し出し、KILLする。  
→キーボードは出なくなりましたが、エクスプローラー等でもキーボードが出なくなり文字入力ができなくなってしまいました。

何かいい方法をご存知の方いらっしゃいませんか？  
よろしくお願いいたします。


CC BY-SA 3.0
2016-09-27T05:19:03.713
29178
2016-11-11T14:03:11.510
17014
question
c# .net wpf windows-10
C# WPF タッチキーボードを表示させたくない


お世話になっております。

自己レスですが、解決方法を見つました。  
少しアプローチが違い、気持ちの良い方法ではありませんが、以下のURLを参考にし、TextBoxのGotKeyboardFocusでキーボードを閉じる処理を入れることで実現できました。  
<https://stackoverflow.com/questions/17090325/show-hiding-the-windows-8-on-
screen-keyboard-from-wpf>

実装したコードは次のような感じです。

[code]

    txtCode.GotKeyboardFocus += (sender, eventArg) =>
    {
        int iHandle = FindWindow("IPTIP_Main_Window", "");
        if (iHandle > 0)
        {
            // close the window using API        
            SendMessage(iHandle, WM_SYSCOMMAND, SC_CLOSE, 0);
        }
    
        //オリジナルのキーボードを表示する処理・・・
    }
    
[/code]

以上です。  
他に何かいい方法があれば、ご教示お願いいたします。


CC BY-SA 3.0
2016-09-29T04:38:41.787
29230
2016-09-29T04:38:41.787
2017-05-23T12:38:56.467
-1
17014
29178
answer