Frage

Ich schreibe eine .NET Forms Control HTML bearbeiten mit MSHTML. Ich erstelle einige benutzerdefinierte Elemente und wollen, dass sie effektiv schreibgeschützt machen. Ich dachte, ich über diese durch die Konzentration auf das gesamte Element in diesem Element jederzeit Fokus aber die HtmlElement.Focus () eingegeben überall wählen nicht das gesamte Element gehen könnte und ich scheine nicht in der Lage sein Eintrag des Cursors zu erfassen .

Eine andere Möglichkeit wäre, ein Ereignis zu erheben, wenn der Text des Elements geändert wird (auf KeyDown erwarte ich), aber ich kann nicht das Ereignis bekommen zu schießen, auch nicht. Irgendwelche Ideen, warum meine Erwartungen über Event Verhalten ist falsch oder alternative Vorschläge für die Umsetzung?

War es hilfreich?

Lösung

Ich fand, dass das Attribut:

contentEditable=false

Führte in dem gewünschten Verhalten.

Andere Tipps

Falls Sie versuchen, Nur-Lese-Verhalten auf eine Benutzereingabe Steuerung anwenden, können Sie @readonly Attribut dieser Kontrolle versuchen Sie es mit. Sonst könnte man auch Ereignis-Listener für entsprechende UI Ereignisse (keydown, mousedown-) und verhindern, dass ihre Standardverhalten (return false oder event.returnValue = false) hinzuzufügen. Wie für benutzerdefinierte Ereignisse auslösen, können Sie in der Tat das tun. Verwenden Sie Ereignisnamen, die IE bekannt ist. Und ein weiterer Hinweis sein könnte. Registrieren einen Event-Handler onchange und kehrt Wert des Steuer auf den Wert von default (Eigenschaft aller Eingangskontrollen)

Hoffnung einige Ideen helfen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top