2008-10-06 2 views
0

Я пишу элемент управления .NET для редактирования HTML с использованием MSHTML. Я создаю некоторые пользовательские элементы и хочу сделать их эффективно доступными только для чтения. Я думал, что могу это сделать, сосредоточившись на всем элементе, когда фокус, введенный где-нибудь в этом элементе, но HtmlElement.Focus() не выбирает весь элемент, и я, похоже, не могу захватить запись курсора ,Сделать элемент DOM эффективно только для чтения

Другим вариантом было бы поднять событие всякий раз, когда текст элемента будет изменен (в KeyDown я ожидаю), но я тоже не могу запустить это событие. Любые идеи о том, почему мои ожидания относительно поведения событий неправильны или альтернативные предложения для реализации?

ответ

1

Я обнаружил, что установка атрибута:

contentEditable=false 

Привел желаемое поведение.

0

В случае, если вы пытаетесь применить поведение readonly к элементу управления пользователем, вы можете попробовать использовать атрибут @readonly этого элемента управления. В противном случае вы также можете добавить прослушиватели событий для соответствующих событий пользовательского интерфейса (keydown, mousedown) и предотвратить их поведение по умолчанию (return false или event.returnValue = false). Что касается отправки специальных событий, вы действительно можете это сделать. Используйте имя события, известное IE. И еще один намек: зарегистрировать обработчик события onchange и вернуть значение элемента управления в значение defaultValue (свойство любых элементов управления вводом).

Надеюсь, что некоторые идеи помогут.

Смежные вопросы