Tôi muốn nhập văn bản tiếng Hàn trong khu vực ediatble của tôi bên trong một ứng dụng winform.Làm thế nào để có đầu vào Hàn Quốc trong Winform?
Nhưng Ký tự lặp lại, tôi đã cố ghi đè mặc định WndProc
nhưng không có tác dụng.
switch (m.WParam.ToInt32())
{
case Common.Interop.Window.WM_IME_CHAR:
break;
case Common.Interop.Window.WM_IME_ENDCOMPOSITION:
PassCharToScreen(m);
break;
case Common.Interop.Window.WM_CHAR:
PassCharToScreen(m);
break;
case Common.Interop.Window.WM_IME_NOTIFY:
break;
case Common.Interop.Window.WM_IME_COMPOSITION:
PassCharToScreen(m);
break;
case Common.Interop.Window.WM_IME_COMPOSITIONFULL:
break;
Khi tôi gõ bằng tiếng Anh, hit breakpoint WM_CHAR
, Nhưng Khi tôi gõ bằng tiếng Hàn nó chạm WM_IME_COMPOSITION
vào ký tự đầu tiên, và sau đó sau khi nhân vật đầu tiên nó chạm WM_IME_COMPOSITION
đầu tiên và sau đó chạm WM_CHAR
.
Tôi đã quan sát thấy rằng loại ký tự đầu tiên là chính xác. ví dụ: ㅁ (Ký tự Hàn Quốc) Khi nhập ký tự thứ hai. ㅁㅂㅁ (char đầu tiên, char thứ hai, char đầu tiên). Tôi muốn có hành vi vì nó nằm trong notepad
cũng hiển thị câu lệnh chuyển đổi. –
Có lẽ liên kết này sẽ giúp bạn. http://stackoverflow.com/questions/3287180/putting-ime-in-a-custom-text-box-derived-from-control –
loại điều khiển nào? một tiêu chuẩn 'TextBox'? nó được phân lớp bằng cách nào đó? bởi vì nếu không nó được cho là hoạt động tốt. khu vực văn bản trong notepad cũng dựa trên một điều khiển EDIT đơn giản, trong đó có dây lên tất cả các công cụ yêu cầu IME theo mặc định. WPF sẽ là một câu chuyện khác, nhưng không phải là WinForms. – dlatikay