2010-12-28 10 views
3

私は自分のフォーム上にあるテキストボックスでオートコンプリートを無効にする必要があるWindows Mobile 6アプリケーションを作っています。情報がスキャンされているため、オートコンプリート/オートサジェスト機能を無効にする必要があります。これをプログラムで行うことはできますか、またはレジストリキーを操作する必要はありますか?これは商用アプリケーションではありません。Windows Mobile 6 - WinFormsのテキストボックスでオートコンプリートを無効にする

+1

あなたは本当にあなたの質問に答えたとsharky101をマークする必要があります。それは私のために働いた。 – Craig

答えて

20

このクラスを使用すると、SHSetInputContextメソッドがピンボケされ、コントロールのホバーオーバーイベントが無効になります。コントロールハンドルを渡すだけです。

public static class InputContext 
{ 
    private enum SHIC_FEATURE : uint 
    { 
     RESTOREDEFAULT = 0, 
     AUTOCORRECT = 1, 
     AUTOSUGGEST = 2, 
     HAVETRAILER = 3, 
     CLASS = 4 
    } 

    [DllImport("aygshell.dll")] 
    private static extern int SHSetInputContext(IntPtr hwnd, SHIC_FEATURE dwFeature, ref bool lpValue); 

    public static void SetAutoSuggestion(IntPtr handle, bool enable) 
    { 
     SHSetInputContext(handle, SHIC_FEATURE.AUTOSUGGEST, ref enable); 
     SHSetInputContext(handle, SHIC_FEATURE.AUTOCORRECT, ref enable); 
    } 
} 

例:

InputContext.SetAutoSuggestion(txtBoxOne.Handle, false); 
+3

これをコンパイルするには、 "using System.Runtime.InteropServices;"を追加する必要があります。そうでなければ完璧な、私は読み込みを助けた! – hydev

+1

最高の解決策はこれまでのところ見つかった...あなたが答えとして掲示するマークを二重にすることができれば幸いです。 – Ryan

+1

これは私にとってもうまくいくことを確認したかっただけです。ライアンに感謝します。また、ハーヴェイはあなたのお尻を降りてライアンに正しい答えとしてマークすることで彼にふさわしいクレジットを与えます;) – Robba

関連する問題