Windows Mobile 6 - 在WinForms TextBoxes上禁用自动完成功能

Har*_*vey 4 autocomplete windows-mobile

我正在制作一个Windows Mobile 6应用程序,我需要在我的表单上的文本框上禁用自动完成功能.正在扫描信息,因此我需要禁用自动完成/自动提示功能.我可以通过编程方式执行此操作还是需要操作注册表项?(这不是商业应用.)

小智 21

使用此类,它将pinvoke SHSetInputContext方法并禁用\ enable将鼠标悬停在控件的事件上.只需通过控件Handle.

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);
    }
}
Run Code Online (Sandbox Code Playgroud)

例:

InputContext.SetAutoSuggestion(txtBoxOne.Handle, false);
Run Code Online (Sandbox Code Playgroud)

  • 为了编译你需要添加"using System.Runtime.InteropServices;" 否则完美,帮助我加载! (3认同)