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

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

有帮助吗?

解决方案

我发现设置属性:

contentEditable=false

导致所期望的行为。

其他提示

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top