.net 使DOM元素有效地只读

.net 使DOM元素有效地只读,.net,dom,mshtml,.net,Dom,Mshtml,我正在编写一个.NETForms控件来使用MSHTML编辑HTML。我正在创建一些自定义元素,并希望使它们有效地只读。我想我可以在焦点进入元素的任何地方时关注整个元素,但是HtmlElement.focus()没有选择整个元素,而且我似乎无法捕捉光标的输入 另一种选择是,每当元素的文本发生更改时(我希望是在KeyDown上),都会引发一个事件,但我也无法触发该事件。关于为什么我对事件行为的期望是错误的,或者关于实现的其他建议,您有什么想法吗?如果您试图将只读行为应用于用户输入控件,您可以尝试使用

我正在编写一个.NETForms控件来使用MSHTML编辑HTML。我正在创建一些自定义元素,并希望使它们有效地只读。我想我可以在焦点进入元素的任何地方时关注整个元素,但是HtmlElement.focus()没有选择整个元素,而且我似乎无法捕捉光标的输入


另一种选择是,每当元素的文本发生更改时(我希望是在KeyDown上),都会引发一个事件,但我也无法触发该事件。关于为什么我对事件行为的期望是错误的,或者关于实现的其他建议,您有什么想法吗?

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


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

我发现设置属性:

contentEditable=false
导致期望的行为