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

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

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

徵狀

在 DataGrid 儲存格中,不是由輸入法正確辨識東亞語言的第一個輸入字元。

原因

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

解決方案

重要

本節說明如何修改註冊表。 不正確的修改會導致嚴重的問題。 請仔細執行步驟以避免任何錯誤。 為了增加保護,請備份登錄,使其在發生問題時能夠還原。

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

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

請考慮下列情節:

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

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

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

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

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

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

    例如,特定可執行檔名稱的解決方法,例如: sample.exe

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

  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>

    例如:針對特定視窗類別名稱為 [編輯] 的變通辦法

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

參考

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