| |
VB.NET - Ein- und UmsteigerMultiline Textbox | | | Autor: BasicOpa | Datum: 20.06.19 15:19 |
| Hallo zusammen,
2 Fragen hierzu:
1. Wie lassen sich leere Zeilen anlegen? (Index out of Range vermeiden)
2. Ich möchte einzelne Zeilen und innerhalb derer Positionen und Längen bestimmen um Daten zu entnehmen und/oder zu ersetzen. Wie ist das am einfachsten zu machen? Laienhaft stelle ich es mir ideal so vor: TextBox1.Lines(4, 25, 6) = "blabla".
Kann mir jemand helfen?
Viele Grüße
BasicOpa | |
Re: Multiline Textbox | | | Autor: Manfred X | Datum: 20.06.19 16:57 |
| Hallo!
Die Textbox ist eigentlich nicht für zeilenbezogen strukturierte Textdaten konzipiert
(Textumbruch).
Wenn Du solche Daten verarbeiten willst, solltest Du vielleicht an eine Datatable und ein
Datagrid denken. Dort hast Du eine Liste (Rows) einzelner Textabschnitte zur Verfügung.
Erkläre etwas genauer, was Du erreichen möchtest. | |
Re: Multiline Textbox | | | Autor: BasicOpa | Datum: 20.06.19 17:59 |
| Hallo Manfred,
erstmal danke für die Antwort.
Ich benötige zur Steuerung eines meiner Anwendungsprogramme spezielle Skripte, deren Sprache eine eigene Entwicklung ist. (Beispiel: Start=S5,Ziel=X0009,Bed=false,Sonst="BlaBa"). Diese Skripte können mehrere Seiten mit vielen Zeilen groß werden. Zur Erstellung der Skripte soll ein eigens dafür entwickelter Editor dienen. Als Basis will ich dafür eine Multiline-TextBox verwenden.
Viele Grüße
BasicOpa | |
Re: Multiline Textbox | | | Autor: Manfred X | Datum: 20.06.19 20:26 |
| Ich weiß noch zu wenig, um Deine Vorgehensweise einordnen zu können.
Ich vermute, ein RichTextBox-Control könnte eingesetzt werden, um
einzelne Abschnitte zu markieren und zu ersetzen/editieren.
In einer Textbox kannst Du in den Text Steuerzeichen eintragen,
die als Zeilenumbruch (vbNewLine) interpretiert werden. Damit erhälst
Du eine neue leere Zeile.
Beitrag wurde zuletzt am 20.06.19 um 20:47:57 editiert. | |
Re: Multiline Textbox | | | Autor: BasicOpa | Datum: 21.06.19 15:09 |
| Hallo Manfred,
die RichTextBox bietet viel mehr als die "normale" Multiline TextBox. Dafür ist sie aber viel komplizierter in der Anwendung und all dieses Komfort den sie bietet brauche ich nicht.
Was ich brauche ist ein einfacher, zeilenorientierter Textbereich. Innerhalb dieses Bereiches möchte ich Zeilen anlegen, löschen und innerhalb des gesamten Bereichs navigieren. Darüber hinaus innerhalb navigierter Zeilen bestimmte Positionen ansprechen und Inhalte mit vorgegebener Länge austauschen.
Stell Dir bitte den Editor in VB vor. So ähnlich, aber viel weniger anspruchsvoll soll mein Editor funktionieren.
Viele Grüße
BasicOpa | |
Re: Multiline Textbox | | | Autor: Manfred X | Datum: 21.06.19 18:43 |
| Die Textbox enthält einen Text und kein Zeilenarray. Die Lines-Eigenschaft
liefert nur eine schreibgeschützte Zerlegung des Textes in Zeilen,
anhand der Textbox-Parameter und der harten Zeilenumbrüche.
Sind die Text-"Zeilen" durch harte Umbrüche getrennt?
Zeilen sind keine fixen Datenstrukturen. Wie willst Du dort navigieren?
Willst Du in der Textbox im Dialog einen Textabschnitt markieren und austauschen?
Das geht mit den Selection-Methoden der TextBox. Angaben zur Zeile benötigst
Du nicht. Diese Methoden liefern Dir direkt die Position im Text. Den markierten Abschnitt
kannst Du per Code löschen oder ersetzen
Das Einfügen von Zeilenumbrüchen funktioniert per ENTER-Taste in der Box.
Was verstehst Du unter "Positionen" ansprechen? Willst Du per Code Textabschnitte suchen?
Das geht mit der IndexOf-Methode des Textstrings.
Ein Ersetzbeispiel (txt sei eine Textbox)
txt.Text = "aaaa" & vbCrLf & "bbbb"
Dim pos As Integer = txt.Text.IndexOf("bb", 0)
txt.SelectionStart = pos
txt.SelectionLength = 2
txt.SelectedText = "dd" Ich habe den Eindruck, das Denken in Zeilen verwirrt Dich. Betrachte den Inhalt der
Box als fortlaufende Zeichenfolge - eventuell mit Umbrüchen.
(Der VB-Editor arbeitet übrigens auch nicht mehr zeilenorientiert, sondern verwendet
fast ausschließlich automatische Zeilen"fortsetzungen" innerhalb der einzelnen Anweisung.)
Ist Dein Datenmaterial in feste Abschnitte strukturiert, kann ich nur noch einmal auf
eine Datatable mit einer Integerspalte (Numerierung) und einer Stringsspalte hinweisen,
die an ein DataGridView-Control gebunden werden kann.
Dann hast Du eine definierte Liste von Zeilen zur Verfügung, in der Zeilen eingefügt und
gelöscht werden können. Das Navigieren im Grid ist problemlos möglich. | |
Re: Multiline Textbox | | | Autor: Manfred X | Datum: 21.06.19 23:12 |
| Hallo!
Bitte keine veralteten VB6-Links posten.
Das Net-Control ist ergänzt um geeignete Methoden. | |
Re: Multiline Textbox | | | Autor: BasicOpa | Datum: 24.06.19 12:24 |
| Hallo Manfred,
vielen Dank für die ausführliche Erklärung, die mich gewiss entscheidend weiter bringt. Ich habe begriffen, dass es sich bei der Textbox nicht um ein Zeilenarray handelt. Dieser Irrtum war wohl der entscheidende Grund für mein Problem.
Mein neuer Ansatz ist dem entsprechend der, dass ich die TextBox im Prinzip nur zur einfachen Eingabe von Text-"Zeilen" mit anschließendem Zeilenumbruch, sowie zur reinen Anzeige des Textes verwende. Und alle positionsbezogenen Änderungen und/oder Ergänzungen in einem parallel geführten Daten-Array durchführe.
Viele Grüße
BasicOpa | |
| Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
|
|
Neu! sevCoolbar 3.0
Professionelle Toolbars im modernen Design!
Mit sevCoolbar erstellen Sie in wenigen Minuten ansprechende und moderne Toolbars und passen diese optimal an das Layout Ihrer Anwendung an (inkl. große Symbolbibliothek) - für VB und MS-Access Weitere InfosTipp des Monats März 2024 Dieter OtterUTF-8 Konvertierung von Dateien und StringsVB6 selbst verfügt über keine Funktionen zur UTF-8 Konvertierung von Daten. Mit Hilfe des ADODB.Stream-Objekts lassen sich diese fehlenden Funktionen aber schnell nachrüsten. TOP Entwickler-Paket
TOP-Preis!!
Mit der Developer CD erhalten Sie insgesamt 24 Entwickler- komponenten und Windows-DLLs. Die Einzelkomponenten haben einen Gesamtwert von 1605.50 EUR...
Jetzt nur 599,00 EURWeitere Infos
|
|
|
Copyright ©2000-2024 vb@rchiv Dieter Otter Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.
Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel
|
|