DataGrid 儲存格中無法辨識的東亞語言第一個字元

本文可協助您解決在 Windows 10 上的 DataGridView 儲存格中無法正確辨識東亞語言的第一個輸入字元的問題。

原始產品版本:Windows 10
原始 KB 編號: 4563779

徵狀

DataGrid 儲存格中的 IME 無法正確辨識東亞語言的第一個輸入字元。

原因

編輯控制項的輸入組合不包含在 DataGrid 儲存格中輸入的第一個字元。 因此,輸入的文字可能不正確。  必須清除編輯控制項內容,以確保輸入正確的文字。 這是應用程式相容性問題。 變更相容性登錄是因應措施。

解決方案

重要事項

本節說明如何修改登錄。 修改不當可能會造成嚴重問題。 請仔細遵循步驟,以避免發生任何錯誤。 若要新增保護,請備份登錄,以便在發生問題時還原。

如需如何備份和還原登錄的詳細資訊,請參閱: 如何在 Windows 中備份和還原登錄

有兩個登錄機碼可解決此問題。 客戶可以將下列其中一個登錄機碼套用至系統。

請考慮下列情節:

  • 如果您有多個應用程式遇到此問題,且每個應用程式的每個 DataGrid 資料格都有不同的 Window 類別名稱。 在此情況下,您可以新增登錄機碼,其中包含應用程式的可執行檔名。 然後,您會將值設定為 0x00008000。 您必須重複設定每個單一應用程式的登錄機碼。

  • 如果您有多個應用程式遇到此問題,但您的應用程式會針對 DataGrid 儲存格使用單一視窗類別名稱,因為這些應用程式的視窗類別名稱全都相同。 在此情況下,您可以新增 AppCompatClassName 登錄機碼。 然後,您會將值設定為應用程式的 Window 類別名稱。

  1. 針對特定進程名稱:
    登錄專案

    <HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\CTF\Compatibility\ExecutableFileName>
    REG_DWORD:相容性
    DWORD 值:0x00008000 (32,768) 的十六進位值

    如果 x86 應用程式是在 x64 Windows 系統上執行,則可以套用下列登錄機碼,而不是上述登錄機碼:

    <HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\CTF\Compatibility\ExecutableFileName>
    REG_DWORD:相容性
    DWORD 值:0x00008000 (32,768) 的十六進位值

    例如:特定可執行檔名的因應措施,例如 sample.exe

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\CTF\Compatibility\sample.exe
    REG_DWORD:相容性
    DWORD 值:0x00008000 (32,768) 的十六進位值

  2. 針對特定 Windows 類別名稱:
    如果您使用此案例,則必須在系統上套用下列 Windows 更新。

    Windows 10版本 文章連結
    Windows 10 1803 版 KB4550944
    Windows 10 1809 版 KB4550969
    Windows 10 1903 版 KB4541335
    Windows 10 1909 版 KB4541335
    Windows 10 2004 版 KB4571744

    登錄專案:

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\CTF\Compatibility\AppCompatClassName
    REG_SZ:相容性
    字串值: < WindowClassName>

    如果 x86 應用程式是在 x64 Windows 系統上執行,則可以套用下列登錄機碼,而不是上述登錄機碼:

    HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\CTF\Compatibility\AppCompatClassName
    REG_SZ:相容性
    字串值: < WindowClassName>

    例如:特定視窗類別名稱為Edit的因應措施

    KEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\CTF\Compatibility\AppCompatClassName
    REG_SZ:相容性
    字串值:編輯

參考

瞭解 Microsoft 用來描述軟體更新的術語。