[VB. Net] angezeigter Text ermitteln

L

luckerking

Zuallererst hoffe ich, das ich im Richtigen Bereich geladet bin.

Wie der Titel schon sagt, möchte ich den angezeigten Text einer Textbox ermitteln.
Die (Rich)Textbox enthält z.B einen sehr langen Text, aber es wird nur ein kleinen Bereich dargestellt. Von diesem Bereich bräuchte ich am besten die Position innerhalb des ganzen Textes, zur Not reicht mir aber auch nur der Text.


Ich sage schonmal Danke im Vorraus.
 
Das Problem ist, ich hab noch nichts ...
Mir fehlt einfach der Anfangspunkt dafür.
Darum Frage ich ja, ob es ein Möglichkeit dafür gibt.
Vielleicht gibt es ja schone ein Funktion dafür und ich habe sie nur übersehen?
 
also, wenn ich das richtig verstanden habe, meinst du sowas...

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
RichTextBox2.Text = RichTextBox1.Text //beim Click wird der Text der ersten Box in die zweite geschrieben
End Sub

ich hoffe sowas meinst du !

lol, selbst beim 10. mal durchlesen verstehe ich nicht, was du genau machen willst !

vielleicht hilft dir ja auch der befehl textbox1.text.length weiter, da wird die anzahl der zeichen wiedergegeben
 
Zuletzt bearbeitet:
Verbildlichung:


TextTextTextTextTextTextTextTextTextText
TextTextTextTextTextTextTextTextTextText
TextTextTextTextTextTextTextTextTextText
TextTextTextTextTextTextTextTextTextText
TextTextTextTextTextTextTextTextTextText
---------------------------------------------------------------
|TextTextTextTextTextTextTextTextTextText|
|TextTextTextTextTextTextTextTextTextText|
|TextTextTextTextTextTextTextTextTextText|
|TextTextTextTextTextTextTextTextTextText|
----------------------------------------------------------------
TextTextTextTextTextTextTextTextTextText
TextTextTextTextTextTextTextTextTextText
TextTextTextTextTextTextTextTextTextText
TextTextTextTextTextTextTextTextTextText
TextTextTextTextTextTextTextTextTextText


Der Text innerhalb der Striche wird gerade angezeigt (auf Monitor und in der Textbox sichtbar). Den restlichen Text sieht man nicht, obwohl die Textbox den Text enthält.
Nun möchte ich den gerade sichtbaren Text herausfinden( der in den Strichen).

Ich hoffe es ist jetzt verständlich, ich weiß ich habs ein bisschen komisch erklärt :D



Edit: Es ist eine Textbox, mit viel Text und deshalb muss man scrollen und deshalb sieht man auch nicht den ganzen Text
 
Zuletzt bearbeitet von einem Moderator:
also , da ich nicht weiß wo es genau ist ,poste ich das einfach mal hier rein :)

unter richttexbox gibt es folgenen Befehl:

richtextbox1.SelectedText

und schon hast du es !

zb. textbox1.text = richtextbox1.selectedText 'nun wird der makierte text in der Textbox1 angezeigt
mfg johnny
ps: hab das jetzt nich getestet , müsste aber klappen :)
 
Mit den bisherigen Lösungen bekommt er aber immer noch nicht den sichtbaren Bereich.
Leider ist schon spät darum nur der Ansatz:

Über die Methode GetCharIndexFromPosition am Punkt 0,0 bekommst du das erste sichtbare Zeichen. Über GetLineFromCharIndex hast du dann die erste Zeile. Die letzte sichtbare Zeile kannst du ebenfalls über GetCharIndexFromPosition mit dem entsprechenden Punkt holen. Oder wenn keine Formatierungen vorhanden sind kannst du auch über die Höhe der TextBox und der Schrifthöhe die Anzahl der sichtbaren Zeilen berechnen. Den Text bekommst du dann indem du über die Lines Eigenschaft die Zeilen zusammenschaufelst.
 
ja, das klingt ja schön, aber er will doch nur einen teil des Gesamttextes herausfiltern :)

textbox1.text = richtextbox1.selectedText

da währe dies der einfachste weg .
also s owürde ich das machen.warum etwas komplizierter machen als es ist
mfg johnny
 
Genau diese Methode hatte ich gesucht: GetCharIndexFromPosition
Damit Suche ich mir die erste Position des Sichtbaren Textes und mit ein paar anderen Methode finde ich dann auch das Ende.

Mit selectedText gibt er mir nur das, was gerade makiert ist, aber eine makierung kann auch über den Sichtbaren Bereich hinaus gehen.

Problem gelöst.

Danke vielmals.
 
Zurück