Einfügemarke in "äußerer" Textbox (ad 2) ...

04/03/2010 - 19:08 von Frank Boehland | Report spam
...

Das Problem ist, dass ich mich nicht nur auf einer Ebene (dem Formular)
bewege, sondern auf drei:

* der "inneren" Textbox
* dem Benutzersteuerelement (UC) mit innerer Textbox
* dem Formular mit Benutzersteuerelement und einer "àußeren" Textbox

Die innere Textbox soll bei Eintritt Inhalt, Formatierung und Bearbeitung an
die àußere Textbox übergeben. Nach deren Verlassen werden Inhalt und
Formatierung an die innere Textbox zurückgegeben.

Das Problem: Ich habe ein recht kompliziertes, bisher als Wordvorlage
verwendetes Blatt nachzubilden. Dazu bediene ich mich vieler UC, die
verschieden aufgebaut und thematisiert sind. Ich habe gewissermaßen einen
"Setzkasten", dessen Elemente in das Formular zur Laufzeit eingehen. Um immer
den ganzen Text bei der Eingabe anzuzeigen, soll sich die Textbox aufweiten.
Dies hieße aber in einem Container, wie dem UC, dass die Textbox in einen
unsichtbaren Bereich wàchst oder dass der Container selbst die Größe der
Textbox annehmen müßte. Damit geràt aber der Aufbau des ganzen Blattes
durcheinander.

Deshalb das Delegieren an die im Formular liegende, àußere Textbox. Die will
aber die Einfügemarke nicht annehmen. Vielleicht verheddere ich mich mit der
Abfolge der Ereignisse auf den drei Ebenen.

Was für eine Prosa :-)

Any idea?

Gruß vom Frank
 

Lesen sie die antworten

#1 Karsten Sosna
05/03/2010 - 08:32 | Warnen spam
Das Problem ist, dass ich mich nicht nur auf einer Ebene (dem Formular)
bewege, sondern auf drei:

* der "inneren" Textbox
* dem Benutzersteuerelement (UC) mit innerer Textbox
* dem Formular mit Benutzersteuerelement und einer "àußeren" Textbox

Die innere Textbox soll bei Eintritt Inhalt, Formatierung und Bearbeitung
an
die àußere Textbox übergeben. Nach deren Verlassen werden Inhalt und
Formatierung an die innere Textbox zurückgegeben.

Das Problem: Ich habe ein recht kompliziertes, bisher als Wordvorlage
verwendetes Blatt nachzubilden. Dazu bediene ich mich vieler UC, die
verschieden aufgebaut und thematisiert sind. Ich habe gewissermaßen einen
"Setzkasten", dessen Elemente in das Formular zur Laufzeit eingehen. Um
immer
den ganzen Text bei der Eingabe anzuzeigen, soll sich die Textbox
aufweiten.
Dies hieße aber in einem Container, wie dem UC, dass die Textbox in einen
unsichtbaren Bereich wàchst oder dass der Container selbst die Größe der
Textbox annehmen müßte. Damit geràt aber der Aufbau des ganzen Blattes
durcheinander.

Deshalb das Delegieren an die im Formular liegende, àußere Textbox. Die
will
aber die Einfügemarke nicht annehmen. Vielleicht verheddere ich mich mit
der
Abfolge der Ereignisse auf den drei Ebenen.



Hallo Frank,
ich habe weder dies hier verstanden, noch die Antwort die Du auf mein
Posting geben hast. Das liegt aber wohl eher daran, das beides gleich ist.
Entweder beschreibst Du das Problem nicht richtig oder ich versehe es
wirklich nicht.
Wie sieht den diese Wordvorlage aus? Ist das ein Lückentext oder was?

Wenn ich schon lese "Dazu bediene ich mich vieler UC..." fàllt mir schon
fast nicht mehr ein und behaupte Dein Lösungsansatz ist von Grund auf
falsch. Bestàtigt wird so etwas mit solchen Aussagen: "...Damit geràt aber
der Aufbau des ganzen Blattes durcheinander.". Ein Formular ist erst mal
kein Blatt, erst die Anwendung könnte es so erscheinen lassen. Glaube mir
dazu gehört ader eine Menge Arbeit, wo bei sich die auf Überlegungen der
Darstellung und dessen Realisierung konzentriert. Sicherlich bist Du auch
einer derer, die eine Tabelle aus etlichen vielen Textboxen zusammenklicken.
Dabei ist die Lösung sowas von simple. Wenn man die
Eingabesteuerung(Cursorposition, löschen entfernen etc.) nich selbst
übernehmen brauch man dafür nur eine einzige TextBox. Jenach Spalte und
Zeile wird diese dann dort angezeigt. Bearbeitet Zellenwerte werden in ein
internes zweidimensionales Array(oder was auch immer) gespeichert. Das
Tabellengrid, Überschriften, Zeileninhalte etc. werden dann auf den
Container gezeichnet. Hierzu eignet übrigens bestens eine ScrollableControl
abgeleitet Klasse da man auch gleich die Steuerung der Scrollbars damit
erschlàgt.
Das Prinzip ist immer das Gleiche, nur eine TextBox die Ihre Position
àndert. Eine Tabelle ist noch einfach, da man die möglichen Positionen
sauber berechnen kann. Bei einem Formular hingegen muss man die Postionen
vorher festlegen aber auch das ist nicht unbedingt ein Problem. Ander sieht
es bei Lückentexten aus, hier kann sich die Position jederzeit àndern muss
dementsprechend berechnet werden. Nehmen wir mal an Du hàttest eine Text,
der sich erst mal über 2 Zeilen erstreckt. Eine Eingabe hast du irgendwo in
der 1. und eine Zweite in 2. Zeile. Jetzt gibst Du in der 1. Zeile Dein Text
ein. Nun ist der Text aber so lang, dass die erste Zeile um gebrochen werden
muss. Damit àndert sich die 2. Zeile und somit muss die 2. Eingabe Position
neu berechnet werden. Genau an dieser Stelle fangen die Überlegungen an und
somit die Arbeit. Und genau an dieser Stelle sollte man sich überlegen ob
die Eingabeart überhaupt praxisgerecht ist. Hier wàre ein Eingabeformular
wohl die bessere Wahl, denn über eine Vorschau könnte man sich genauso gut
das Resultat anschauen. Oder man làsst es ganz und automatisiert dazu bspw.
Word(ist ja eine Anwendung die genau auf solche Fàlle spezialisiert ist).

Entweder überdenkst Du Dein Vorhaben noch mal oder erklàrst warum z.B. ein
Automatisierung nicht in Frage kommt.
Gruß Scotty

Ähnliche fragen