0

我正在编写一个 .NET 表单控件来使用 MSHTML 编辑 HTML。我正在创建一些自定义元素,并希望使它们有效地只读。我想我可以通过关注整个元素来解决这个问题,只要焦点在该元素的任何位置输入,但 HtmlElement.Focus() 不会选择整个元素,而且我似乎无法捕获光标的输入.

另一种选择是在元素的文本发生更改时引发事件(我期望在 KeyDown 上),但我也无法触发该事件。关于为什么我对事件行为的期望是错误的任何想法或替代实施建议?

4

2 回答 2

1

我发现设置属性:

contentEditable=false

导致所需的行为。

于 2008-10-07T17:25:38.370 回答
0

如果您尝试将只读行为应用于用户输入控件,您可以尝试使用该控件的 @readonly 属性。否则,您还可以为适当的 UI 事件(keydown、mousedown)添加事件侦听器并阻止它们的默认行为(return false 或 event.returnValue = false)。至于自定义事件调度,您确实可以这样做。使用 IE 已知的事件名称。另一个提示可能是:注册一个 onchange 事件处理程序并将控件的值恢复为 defaultValue 的值(任何输入控件的属性)。

希望一些想法会有所帮助。

于 2008-10-07T09:50:34.937 回答