Text einfügen an Cursor position (Richtextbox)

  • VB.NET

Es gibt 16 Antworten in diesem Thema. Der letzte Beitrag () ist von ~blaze~.

    Text einfügen an Cursor position (Richtextbox)

    Erst einmal hallöchen Community.. =)

    Ich habe, eine Richtextbox, eine textbox und nen button, in der richtextbox, steht standartgemäss shon ein text, nun möchte ich den text aus textbox1 unter den aktuellen text von der rtb einfügen.

    folgendermassn habe ich mir das vorgestellt..

    VB.NET-Quellcode

    1. Dim rtb As New RichTextBox
    2. rtb.SelectionStart = Space(1) & TextBox1.Text & Space(1)

    damit krieg ich Zwar keine Fehlermeldung, aber dafür auch keine anderen handlungen.. sprich es passiert einfach nichts..
    und ich verstehe absolut nicht, warum da jetzt nicht das gewünschte ereigniss passiert..
    ich hoffe ihr könnt mir helfen.. :S und mich auf den richtigen Weg leiten..:)
    Cheers RajYuJin

    programmer71 schrieb:

    Mir ist nicht klar, wo du das Einsetzen willst.

    VB.NET-Quellcode

    1. rtb.SelectionStart = rtb.Text.IndexOf(Wo du es einsetzen willst)



    erst mal danke für die schnelle antwort.. =)

    und entschuldige.. ich bin noch nicht so lange bei.. was meinst du mit: "Mir ist nicht klar, wo du das einsetzten willst.?"

    wie gesagt, ich habe eine Form, und auf der Form liegt eine Richtextbox mit "Standart-Text" (sprich die ersten paar zeilen sind beleget..), nun habe ich noch eine Textbox1.
    Nun möchte ich das der text aus Textbox1 per Buttonklick, unter den Standart-text von der Richtextbox eingefügt wird.

    ein teil deines codes, { IndexOf(...) } hatt mich nochmals verwirrt.. ?(
    werd ich gleich ma googln ;)
    Hallo Alex-Digital,



    Alex-Digital schrieb:

    Hallo,

    das geht, wenn ich mich nicht irre, so:

    VB.NET-Quellcode

    1. RichTextBox.Text = RichTextBox.Text & Chr(13) & Textbox.Text


    MFG

    Alex-Digital :D

    programmer71 schrieb:

    Achso ok.
    @RajYuJin
    @Alex-Digital
    Lieber:

    VB.NET-Quellcode

    1. rtb.Text.Insert(rtb.SelectionStart, TextBox1.Text)




    also, erstmal hallo Alex-Digital,
    so nun danke euch beiden sehr für eure hilfe..

    also die Variante von programmer71 funkt be mir nicht.. =S

    die Variante von Alex-Digital, funktionierte halbwegs, der text wurde erstmals eingefügt, allerdings nicht bei der Cursor position, da dacht ich das es mit dem merkwürdigem Chr (13) auf sich hatte und habe dieses durch SelectionStart ersetzt..

    VB.NET-Quellcode

    1. RichTextBox1.Text = RichTextBox1.Text & rtb.SelectionStart & TextBox1.Text

    und siehe da 8o es funktioniert wie ich wollte =)

    zumindest fast, =S komischerweisse erscheint eine "0" zwischen dem text der schon da stand, und des textes aus der Textbox1 =S..
    aber des krieg ich sicherlich iwie weg.. =)

    vielen vielen dank =)

    okey.. ich bring dieses "0" einfach nicht weg:

    Ich habe versucht was mir so einfiehl.. denoch erfolgslos..

    ich habe folgende form:


    mit folgender Codezeile hab ich den button beschrieben:

    VB.NET-Quellcode

    1. Dim rtb As New RichTextBox
    2. RichTextBox1.Text = RichTextBox1.Text & rtb.SelectionStart & TextBox1.Text

    und erreiche dieses ergebniss per klick:

    wieso um gottes willen ist da nun einfach eine "0" dazwischen 8| ?(
    Machs anders.

    Cursorposition wird von RTB.Paste genutzt.
    Speicher die Zwischenablage in ne Variable, setze sie dann neu
    mit deinem Text. Dann RTB.Paste und Zwischenablage restoren ;)

    VB.NET-Quellcode

    1. Dim old As String = My.Computer.Clipboard.GetText()
    2. My.Computer.Clipboard.SetText("DeinText")
    3. RichTextBox1.Paste()
    4. My.Computer.Clipboard.SetText(old)


    Grüße
    "Life isn't about winning the race. Life is about finishing the race and how many people we can help finish the race." ~Marc Mero

    Nun bin ich also auch soweit: Keine VB-Fragen per PM! Es gibt hier ein Forum, verdammt!

    Nikx schrieb:

    Machs anders.

    Cursorposition wird von RTB.Paste genutzt.
    Speicher die Zwischenablage in ne Variable, setze sie dann neu
    mit deinem Text. Dann RTB.Paste und Zwischenablage restoren ;)

    VB.NET-Quellcode

    1. Dim old As String = My.Computer.Clipboard.GetText()
    2. My.Computer.Clipboard.SetText("DeinText")
    3. RichTextBox1.Paste()
    4. My.Computer.Clipboard.SetText(old)


    Grüße

    dankee.. :) hmm klingt einläuchtend..

    doch frage ich mich, da ich in funktionaler zukunft plane noch mehrere textboxen einzufügen, die sollten dann quasi der reihe nach eingefügt werden..

    aber scheinbar ist das die simpelste Variante.!? :S

    oder gibt es eine möglichkeit, direkt in die letzte zeile, bzw, unter der zuletzt beschribenen zeile, die nächste textbox einzufügen? =S

    sry für die vielen fragen..aber leider werden in meinen büchern alles andere über textboxen erzählt als das was ich gerne wissen/können/lernen möchte.. =S
    Willst du jetzt in die letzte Zeile oder an der Cursor-Position einfügen?

    Grüße
    "Life isn't about winning the race. Life is about finishing the race and how many people we can help finish the race." ~Marc Mero

    Nun bin ich also auch soweit: Keine VB-Fragen per PM! Es gibt hier ein Forum, verdammt!
    im prinzip möcht ich beides wissn.. aber da der cursor bei "failclick's" verrutschen könnte würde es mir wohl mer bringen, wen ich wüsste

    wie mann neue texte, in die zeile nach dem zuletzt eingefügten text, einfügen kann..



    sorry für missverständinse :S



    Cheers :)
    Also ich versteh das immer noch nicht ganz.
    Du willst Texte an der aktuellen Cursor-Position einfügen?

    VB.NET-Quellcode

    1. Dim old As String = My.Computer.Clipboard.GetText()
    2. My.Computer.Clipboard.SetText("DeinText")
    3. RichTextBox1.Paste()
    4. My.Computer.Clipboard.SetText(old)


    Du willst Texte hinter den Text einfügen?

    VB.NET-Quellcode

    1. RichTextBox1.Text = RichTextBox1.Text & Environment.NewLine & "DeinText"


    Hilft dir das oder liege ich wieder falsch?

    Grüße
    "Life isn't about winning the race. Life is about finishing the race and how many people we can help finish the race." ~Marc Mero

    Nun bin ich also auch soweit: Keine VB-Fragen per PM! Es gibt hier ein Forum, verdammt!

    VB.NET-Quellcode

    1. RichTextBox1.Text = RichTextBox1.Text & Environment.NewLine & "DeinText"


    daankee.. :) diese codezeile hatt mir das ganze gerade, als Vision durch den kopf donnern lassn..

    das passt weil genaue possitionen kann ich dan noch mit

    VB.NET-Quellcode

    1. space(1) & vbnewline 'etc.


    ausmachen.. =) vielen vielen dank.. :) :thumbsup:

    Cheers
    Hi
    das wäre die elgantere Art und Weise, das zu lösen, da du so verhinderst, dass Bilder, usw. gelöscht werden.

    Beachte aber, dass das Beantworten von Fragen, die einen längeren Zeitraum zurückliegen, für den Fragensteller nicht mehr relevant sein dürfte. Bitte antworte daher nur auf alte Themen, sofern sich eine explizite Frage auf ein konkretes Problem ergibt. In diesem Fall ist der Themenbezug nicht signifikat genug, als dass es sich lohnen würde, ein altes Thema auszugraben. Bitte daher zukünftig bei solchen Fragen am besten ein neues Thema eröffnen, sofern es dir lohnend erscheint.

    Thema geschlossen

    Viele Grüße
    ~blaze~