假设我在 Windows 窗体中嵌入了 Internet Explorer,然后我导航到网络上的一个随机页面。如何确定文本框(或任何其他可以接受文本输入的控件)何时成为焦点项目?基本上,每次单击鼠标时,我都可以检查焦点项目是文本框还是其他文本输入控件,然后采取适当的行动。
提前致谢,
鲍勃
假设我在 Windows 窗体中嵌入了 Internet Explorer,然后我导航到网络上的一个随机页面。如何确定文本框(或任何其他可以接受文本输入的控件)何时成为焦点项目?基本上,每次单击鼠标时,我都可以检查焦点项目是文本框还是其他文本输入控件,然后采取适当的行动。
提前致谢,
鲍勃
您还没有解释 WebBrowser 的滚动,但问题似乎在于跟踪输入焦点。我不知道表单级别的事件,但您可以将事件处理程序挂钩到所有相关控件的 Enter 或 GotFocus 事件。
// in Form_Load
foreach (var control in this.Controls) control.Enter += OnEnterControl;
private void OnEnterControl(object sender, EventArgs e)
{
focusControl = (sender as Control);
}
我相信您想要做的是接收HTMLTextContainerEvents2调度接口并响应 onFocus(可能还有 onBlur)。
没错,您必须自己通过 pinvoke 进行互操作。我假设您可以获得指向您要跟踪的所有对象的 IHTMLElement 指针(通过使用 getElementsByTagName 或类似的东西)。一旦你有了它,