Schreibgeschützte Eigenschaften überschreiben

31/08/2009 - 16:05 von Dominik Schmidt | Report spam
Hallo zusammen,

ich muss einige Control-Eigenschaften zur Laufzeit àndern, die
schreibgeschützt sind.
Beispielsweise die Scrollbars-Einstellung in einer RichTextBox.

Es kommt Fehler 383: Property is read-only. Oder: Compile Error: Can't
assign to read-only property.

Wie kann ich diese "Sperren" (?) überschreiben?

Zur Erklàrung:
- Ich kann das Control nicht manuell im Designmodus einstellen, da es dann
noch nicht existiert - es wird erst zur Laufzeit erzeugt.
- Ich habe irgendwo etwas von WindowLess Controls gelesen, bei denen das
möglich sein soll - allerdings sollen die auch kein Handle haben, wodurch
das für mich keine Option mehr ist, denn ich brauche das Handle spàter zum
Manipulieren der Controls.
 

Lesen sie die antworten

#1 Thorsten Albers
31/08/2009 - 17:57 | Warnen spam
Dominik Schmidt schrieb im Beitrag
<dnn1k03y6ucc$...
ich muss einige Control-Eigenschaften zur Laufzeit àndern, die
schreibgeschützt sind.
Beispielsweise die Scrollbars-Einstellung in einer RichTextBox.

Es kommt Fehler 383: Property is read-only. Oder: Compile Error: Can't
assign to read-only property.

Wie kann ich diese "Sperren" (?) überschreiben?

Zur Erklàrung:
- Ich kann das Control nicht manuell im Designmodus einstellen, da es


dann
noch nicht existiert - es wird erst zur Laufzeit erzeugt.
- Ich habe irgendwo etwas von WindowLess Controls gelesen, bei denen das
möglich sein soll - allerdings sollen die auch kein Handle haben, wodurch
das für mich keine Option mehr ist, denn ich brauche das Handle spàter


zum
Manipulieren der Controls.



Was schreibgeschützt ist, ist schreibgeschützt. Daran làßt sich meines
Wissens nichts àndern.

Einzige Möglichkeit innerhalb von VB: das Steuerlement zur Laufzeit von
einem 'Prototyp' (Index 0) in einem Steuerelement-Feld laden, der zur
Entwurfszeit auf die entsprechenden Eigenschaften eingestellt wurde.

Gelegentlich kann man den Schreibschutz von VB für z.B. eine
Fensterstil-Eigenschaft 'austricksen', indem man den Fensterstil zur
Laufzeit über das Windows API àndert. Allerdings ist dann nicht
gewàhrleistet, daß VB das Steuerelement noch korrekt verwaltet.

Statt der VB-RichTextBox kannst Du Dir natürlich auch ein UserControl
erstellen, das die RichTextBox über das Windows API erstellt. Dann bist Du
derartigen Beschrànkungen nicht unterworfen, hast aber auch einige Arbeit
vor Dir...

Thorsten Albers

albers (a) uni-freiburg.de

Ähnliche fragen