@@ -184,24 +184,42 @@ namespace CefSharp
184184
185185 void WebView::OnPreviewKey (KeyEventArgs^ e)
186186 {
187- CefRefPtr<CefBrowser> browser;
188- if (!TryGetCefBrowser (browser))
189- {
190- return ;
191- }
192-
193- if (e->Key == Key::Tab ||
194- e->Key >= Key::Left && e->Key <= Key::Down)
195- {
196- CefBrowser::KeyType type = e->IsDown ? KT_KEYDOWN : KT_KEYUP;
197- CefKeyInfo keyInfo;
198- keyInfo.key = KeyInterop::VirtualKeyFromKey (e->Key );
199- browser->SendKeyEvent (type, keyInfo, 0 );
200-
201- e->Handled = true ;
202- }
203- }
204-
187+ CefRefPtr<CefBrowser> browser;
188+ if (!TryGetCefBrowser (browser))
189+ {
190+ return ;
191+ }
192+
193+ if (e->Key == Key::Tab ||e->Key >= Key::Left && e->Key <= Key::Down)
194+ {
195+ CefBrowser::KeyType type = e->IsDown ? KT_KEYDOWN : KT_KEYUP;
196+ CefKeyInfo keyInfo;
197+ keyInfo.key = KeyInterop::VirtualKeyFromKey (e->Key );
198+ browser->SendKeyEvent (type, keyInfo, 0 );
199+
200+ e->Handled = true ;
201+ }
202+ }
203+
204+ void WebView::OnPreviewTextInput (TextCompositionEventArgs^ e)
205+ {
206+ CefRefPtr<CefBrowser> browser;
207+ if (!TryGetCefBrowser (browser))
208+ {
209+ return ;
210+ }
211+
212+ CefBrowser::KeyType type;
213+ for (int i = 0 ;i<e->Text ->Length ;i++)
214+ {
215+ CefKeyInfo keyInfo;
216+ keyInfo.key =(int )e->Text [i];
217+ type = KT_CHAR;
218+ browser->SendKeyEvent (type, keyInfo, 0 );
219+ }
220+ e->Handled = true ;
221+ }
222+
205223 void WebView::OnMouseButton (MouseButtonEventArgs^ e)
206224 {
207225 CefRefPtr<CefBrowser> browser;
0 commit comments