如何在UserControl中为WebBrowser控件创建textchange事件?

本文关键字:创建 textchange 事件 控件 WebBrowser UserControl 中为 | 更新日期: 2023-09-27 18:16:32

我使用WebBrowser控件来显示/编辑电子邮件的正文内容。所有这些都是在UserControl中完成的。

我在寻找设计师的事件,WebBrowser没有WebBrowser.TextChange方法。我想在上面写一个方法来检测用户输入的字符数。(仅限文本,忽略图像等)

如何在UserControl中为WebBrowser控件创建textchange事件?

System.Windows.Controls.WebBrowser没有文本属性,所以没有TextChanged事件。如果你真的想这样做,你可以尝试KeyDwon或KeyUp事件来实现它。

注释不能粘贴长代码,所以我在这里添加了代码。

<UserControl x:Class="WpfApplication2.UserControl1"
         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
         xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
         xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
         mc:Ignorable="d" 
         d:DesignHeight="300" d:DesignWidth="300">
<Grid>
    <WebBrowser Name="wb" TextInput="wb_TextInput" KeyDown="wb_KeyDown" Visibility="Visible"/>
</Grid>
</UserControl>

public partial class UserControl1 : UserControl
{
    public UserControl1()
    {
        InitializeComponent();
        //wb.Navigate("http://www.baidu.com");
        wb.Navigate("http://www.bing.com");
    }
    private void wb_TextInput(object sender, TextCompositionEventArgs e)
    {
        //not work
    }
    private void wb_KeyDown(object sender, KeyEventArgs e)
    {
        MessageBox.Show(e.Key.ToString());
        e.Handled = false;
    }
}