RichTextBox->Insert ? [C++/CLI]

  • Hey,


    ich stehe momentan vor einem Problem. Ich möchte an einer spezifischen Stelle in einer richTextBox einen Text hinzufügen.
     int line = rtb_main->GetLineFromCharIndex(rtb_main->Find("// opcd"));
    rtb_main->Text->Insert(line-2, str);


    Theoretisch müsste ja nun in der Zeile line-2 der Text eingesetzt werden. Es passiert allerdings nicht; Der Text wird nicht eingefügt. Die Zeile wird aber gefunden, d.h "line" hat den richtigen Wert. Die Microsoft-Seite hat mir da relativ wenig weiter geholfen.


    ( Und ja, ich weiß dass man C++/CLI nicht verwenden sollte. Muss ich allerdings:p )


    Grüße


    /Push

    Einmal editiert, zuletzt von Manniac ()

  • Ich habe keine Ahnung von CLI und ich kann leider auch keine Dokumentation finden, aber vielleicht ist der Fehler ähnlich dem, der hier beschrieben wird: https://stackoverflow.com/ques…ing-at-top-of-richtextbox


    (Also dass ->Text->Insert() sich nicht wie std::string insert() verhält und den Text verändert, sondern nur den Text mit der Veränderung zurückgibt und man das ganze daher der Variable Text noch zuweisen muss)


    Edit: Wenn ich's richtig verstehe, sollte es sich ja hierum handeln: https://msdn.microsoft.com/de-…insert%28v=vs.110%29.aspx
    Danach wäre die Vermutung dann richtig.

    Einmal editiert, zuletzt von oernqsvfu_fgvaxg ()

  • Danke, hat mir weitergeholfen.


    Ich habe das Ganze allerdings so gelöst:
    int line = rtb_main->GetLineFromCharIndex(rtb_main->Find("// opcd"));
    int index = rtb_main->GetFirstCharIndexFromLine(line);
    rtb_main->SelectionStart = index-2;
    rtb_main->SelectionLength = 1;
    rtb_main->SelectedText = str;