2008-10-06 43 views
0

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

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

回答

1

我发现,设置属性:

contentEditable=false 

在期望的行为造成的。

0

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

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