Pergunta

Eu estou escrevendo um controle de formulários NET para editar HTML utilizando MSHTML. Estou criando alguns elementos personalizados e quer torná-los efetivamente somente leitura. Pensei que poderia ir a este respeito, incidindo sobre todo o elemento qualquer foco tempo inserido em qualquer lugar esse elemento, mas o HtmlElement.Focus () não selecionar o elemento inteiro e eu não parecem ser capazes de entrada captura do cursor .

Outra opção seria elevar um evento sempre que o texto do elemento é alterado (em KeyDown espero), mas eu não posso começar esse evento ao fogo, também. Todas as ideias sobre por que as minhas expectativas sobre o comportamento do evento é sugestões erradas ou alternativos para a implementação?

Foi útil?

Solução

Descobri que definindo o atributo:

contentEditable=false

Resultou no comportamento desejado.

Outras dicas

Você está tentando aplicar o comportamento de somente leitura a um controle de entrada do usuário, você pode tentar usar atributo @readonly desse controle. Caso contrário, você também pode adicionar ouvintes de eventos para eventos apropriados UI (keydown, mousedown) e impedir o seu comportamento padrão (false retorno, ou event.returnValue = false). Quanto aos eventos personalizados expedição, você pode realmente fazer isso. Use o nome do evento que é conhecido por IE. E outra dica poderia ser:. Registrar um manipulador de evento onchange e valor revert de controle para o valor de defaultValue (propriedade de quaisquer controles de entrada)

Hope algumas das idéias vai ajudar.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top