WebBrowser 控件 TextInput 事件
WebBrowser Control TextInput events
我正在努力使用 WebBrowser
控件(在 Winforms 和 WPF 中)。基本上我想实现与 RTF
编辑器相同的行为:处理某种 OnTextInput
事件以获取每次击键的最后键入字符.
我指的是文本字符,而不是可以使用 Keydown/Keyup
事件捕获的 Control、Alt、F5、Enter 等。
有什么帮助吗?提前致谢。
您可以处理 KeyPress
事件 this.webBrowser1.Document.Body
:
private void Form1_Load(object sender, EventArgs e)
{
this.webBrowser1.Navigate("http://www.google.com");
//Attach a handler to DocumentCompleted
this.webBrowser1.DocumentCompleted += webBrowser1_DocumentCompleted;
}
void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
//Attach a handler to Body.KeyPress when the document completed
this.webBrowser1.Document.Body.KeyPress += Body_KeyPress;
}
void Body_KeyPress(object sender, HtmlElementEventArgs e)
{
//handle the event, for example show a message box
MessageBox.Show(((char)e.KeyPressedCode).ToString());
}
注:
- 它不会按照您的需要处理非输入键。
- 如果需要,您还可以根据某些条件设置
e.ReturnValue = false;
来抑制输入。
- 您还可以用同样的方式处理其他按键事件,例如
KeyUp
和 KeyDown
我正在努力使用 WebBrowser
控件(在 Winforms 和 WPF 中)。基本上我想实现与 RTF
编辑器相同的行为:处理某种 OnTextInput
事件以获取每次击键的最后键入字符.
我指的是文本字符,而不是可以使用 Keydown/Keyup
事件捕获的 Control、Alt、F5、Enter 等。
有什么帮助吗?提前致谢。
您可以处理 KeyPress
事件 this.webBrowser1.Document.Body
:
private void Form1_Load(object sender, EventArgs e)
{
this.webBrowser1.Navigate("http://www.google.com");
//Attach a handler to DocumentCompleted
this.webBrowser1.DocumentCompleted += webBrowser1_DocumentCompleted;
}
void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
//Attach a handler to Body.KeyPress when the document completed
this.webBrowser1.Document.Body.KeyPress += Body_KeyPress;
}
void Body_KeyPress(object sender, HtmlElementEventArgs e)
{
//handle the event, for example show a message box
MessageBox.Show(((char)e.KeyPressedCode).ToString());
}
注:
- 它不会按照您的需要处理非输入键。
- 如果需要,您还可以根据某些条件设置
e.ReturnValue = false;
来抑制输入。 - 您还可以用同样的方式处理其他按键事件,例如
KeyUp
和KeyDown