Richtextbox1.Text.Replace()

  • C#

Es gibt 35 Antworten in diesem Thema. Der letzte Beitrag () ist von Schamash.

    Richtextbox1.Text.Replace()

    Hallo,
    Ich wollte in meinen Text Editor eine Suchen und ersetzten Funktion erstellen nur leider funktioniert das ganze nicht so wie es soll.
    Den Code den ich bisher dafür habe ist:

    C#-Quellcode

    1. private void btn_Alle_Ersetzten_Click(object sender, EventArgs e)
    2. {
    3. Bearbeiter FormBearbeiter = new Bearbeiter(); //Die Richtextbox befindet sich in einer Anderen form und die Eigenschaft Modifers ist auf Public
    4. string Suchen = txtBox_Suchen.Text;
    5. string Ersetzten = txtBox_Ersetzten.Text;
    6. FormBearbeiter.richTextBox1.Text.Replace(Suchen, Ersetzten);
    7. }

    Mein Problem ist nun das dann in der anderen Form (wo die Richtextbox drin ist) nichts passiert. Also der Text nicht verändert wird.
    Bill Gates sagte 2004:

    "Spam wird in zwei Jahren der Vergangenheit angehören." :D

    Ignoriervorgang eingeleitet: 90%


    Meine aktuellen Projekte:
    Text = Text.replace("a","b")
    Du hast den ersten Teil vergessen.
    Du weist den ersetzen Teil nichts zu
    There is no CLOUD - just other people's computers

    Q: Why do JAVA developers wear glasses?
    A: Because they can't C#

    Daily prayer:
    "Dear Lord, grand me the strength not to kill any stupid people today and please grant me the ability to punch them in the face over standard TCP/IP."

    Schamash schrieb:

    Text = Text.replace("a","b")

    Ich habe das mal so ausprobiert, jedoch klappt das nur wenn ich das in der selben form habe wie die richtextbox ist. Das ist jedoch nicht das was ich so gerne hätte.
    Bill Gates sagte 2004:

    "Spam wird in zwei Jahren der Vergangenheit angehören." :D

    Ignoriervorgang eingeleitet: 90%


    Meine aktuellen Projekte:
    Das ist dann aber deine Programmierunsauberheit.
    Grundsätzlich sollte eine Form immer selbst für das ändern der eigenen Steuerelemente verantwortlich sein.
    Für die Übergabe an die Form gibt es z.B. Properties und Variablen.

    Und bist du sicher das

    VB.NET-Quellcode

    1. FormBearbeiter.richTextBox1.Text = FormBearbeiter.richTextBox1.Text.Replace(Suchen, Ersetzten)
    nicht funktioniert?
    There is no CLOUD - just other people's computers

    Q: Why do JAVA developers wear glasses?
    A: Because they can't C#

    Daily prayer:
    "Dear Lord, grand me the strength not to kill any stupid people today and please grant me the ability to punch them in the face over standard TCP/IP."

    kingaaron98 schrieb:

    Ich habe das mal so ausprobiert
    Falls Du exakt diesen Quelltext in Deinem Programm stehen hast:
    Text ist der Titel des Fensters / der Form, in dem der Code steht.
    Bedenke, dass Du hier grundsätzlich richtigen Code von uns bekommst, die Anpassung an Deine Variablennamen musst Du allerdings in jedem Falle tun und verifizieren!
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    RodFromGermany schrieb:

    grundsätzlich richtigen Code

    Das nehme ich jetzt mal als Kompliment an.
    Aber auch wenn ich das versuche, überneme ich dafür keine Garantie :)
    There is no CLOUD - just other people's computers

    Q: Why do JAVA developers wear glasses?
    A: Because they can't C#

    Daily prayer:
    "Dear Lord, grand me the strength not to kill any stupid people today and please grant me the ability to punch them in the face over standard TCP/IP."

    Schamash schrieb:

    Und bist du sicher das
    VB.NET-Quellcode
    FormBearbeiter.richTextBox1.Text = FormBearbeiter.richTextBox1.Text.Replace(Suchen, Ersetzten)
    nicht funktioniert?

    Das funktioniert nicht. Wenn ich das so mache dann passiert reingar nichts. und wenn in der Form selber (wo die richtextbox drinnen ist) den Code eingebe klappt alles super gut.
    Nochmal zum Verständnis was für welchen code ich wo habe.
    In der Form wo man den text eingeben kann den man ändern will:

    C#-Quellcode

    1. private void btn_Alle_Ersetzten_Click(object sender, EventArgs e)
    2. {
    3. Bearbeiter FormBearbeiter = new Bearbeiter();
    4. string Suchen = txtBox_Suchen.Text;
    5. string Ersetzten = txtBox_Ersetzten.Text;
    6. FormBearbeiter.richTextBox1.Text = FormBearbeiter.richTextBox1.Text.Replace(Suchen, Ersetzten);
    7. }

    Und einmal den Code der sich in der Form befindet wo sich die Richtextbox befindet:

    C#-Quellcode

    1. private void button1_Click(object sender, EventArgs e)
    2. {
    3. string Suchen = textBox1.Text;
    4. string Ersetzten = textBox2.Text;
    5. richTextBox1.Text = richTextBox1.Text.Replace(Suchen, Ersetzten);
    6. }

    Ich hoffe, ich konnte das nochmal genau zeigen wo welcher Code ist...
    Bill Gates sagte 2004:

    "Spam wird in zwei Jahren der Vergangenheit angehören." :D

    Ignoriervorgang eingeleitet: 90%


    Meine aktuellen Projekte:
    @Schamash :thumbup: Deswegen "grundsätzlich".
    Klar C&P-Künstler werden gelegentlich ausgebremst. :D
    ==========
    @kingaaron98 Das funktioniert exakt so:
    Spoiler anzeigen

    C#-Quellcode

    1. using System;
    2. using System.Windows.Forms;
    3. namespace WindowsFormsApplication1
    4. {
    5. public partial class Form1 : Form
    6. {
    7. public Form1()
    8. {
    9. InitializeComponent();
    10. }
    11. private void button1_Click(object sender, EventArgs e)
    12. {
    13. string Suchen = textBox1.Text;
    14. string Ersetzten = textBox2.Text;
    15. richTextBox1.Text = richTextBox1.Text.Replace(Suchen, Ersetzten);
    16. }
    17. }
    18. }
    Vorher: ==> nachher:
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „RodFromGermany“ ()

    RodFromGermany schrieb:

    Klar C&P-Künstler werden gelegentlich ausgebremst.


    Ich hab das zwar kopiert aber dann direkt hierzu verändert (falls das nicht klar geworden ist):

    C#-Quellcode

    1. FormBearbeiter.richTextBox1.Text = FormBearbeiter.richTextBox1.Text.Replace(Suchen, Ersetzten);

    =======
    @RodFromGermany
    So wie du das gemacht klappt das auch nur hätte ich gerne das die beiden textboxen und der button in einer anderen form sind um dann den text in der Richtextbox zu verändern.
    Also in etwa so:
    Bill Gates sagte 2004:

    "Spam wird in zwei Jahren der Vergangenheit angehören." :D

    Ignoriervorgang eingeleitet: 90%


    Meine aktuellen Projekte:

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „kingaaron98“ ()

    kingaaron98 schrieb:

    C#-Quellcode

    1. FormBearbeiter
    Was ganz genau ist das bei Dir?
    Bei mir funktioniert auch das:
    Spoiler anzeigen

    C#-Quellcode

    1. using System;
    2. using System.Windows.Forms;
    3. namespace WindowsFormsApplication1
    4. {
    5. public partial class Form1 : Form
    6. {
    7. Form2 FormBearbeiter;
    8. public Form1()
    9. {
    10. InitializeComponent();
    11. }
    12. private void button1_Click(object sender, EventArgs e)
    13. {
    14. string Suchen = textBox1.Text;
    15. string Ersetzten = textBox2.Text;
    16. FormBearbeiter.richTextBox1.Text = FormBearbeiter.richTextBox1.Text.Replace(Suchen, Ersetzten);
    17. }
    18. private void button2_Click(object sender, EventArgs e)
    19. {
    20. FormBearbeiter = new Form2();
    21. FormBearbeiter.Show();
    22. }
    23. }
    24. }
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Also meinen Code habe ich gerade nochmal getestet.
    Dein 2. Programmierfehler neben dem direkten ansteuern eines Fremden Steuerelements ist dein Aufruf der Form an sich.
    Eine Form wird als instanz aufgerufen.

    C#-Quellcode

    1. Form2 frm = new Form2();
    2. int Zahl = 1;
    3. frm.Show();
    4. frm.richTextBox1.Text = Zahl.ToString("##");
    5. frm.richTextBox1.Text = frm.richTextBox1.Text.Replace("1", "Hallo");



    Wenn ich Raten müsste würde ich sagen deine Richtextbox hat Modifiers "Private"
    There is no CLOUD - just other people's computers

    Q: Why do JAVA developers wear glasses?
    A: Because they can't C#

    Daily prayer:
    "Dear Lord, grand me the strength not to kill any stupid people today and please grant me the ability to punch them in the face over standard TCP/IP."
    @RodFromGermany
    Bei meinem Text editor habe ich eine große hauptform (Form1) dort habe ich die Eigenschaft IsMdiContainer auf true gesetzt.
    Über ein Toolstrip rufe ich dann die Form2 (FormBearbeiter) auf. Der Code zum aufrufen der Form wäre:

    C#-Quellcode

    1. Bearbeiter FormBearbeiten = new Bearbeiter(); //Bearbeiter ist die gennante Form2
    2. FormBearbeiten.MdiParent = this;
    3. FormBearbeiten.Text = "Unbennant - Dwort Editor";
    4. FormBearbeiten.Show();

    und dann in der FormBearbeiten öffne ich dann die Form zum Ersettzten:

    C#-Quellcode

    1. private void suchenErsetztenToolStripMenuItem_Click(object sender, EventArgs e)
    2. {
    3. Suchen_Ersetzten FormSuchen = new Suchen_Ersetzten();
    4. FormSuchen.Show();
    5. }

    ======
    @Schamash leider falsch geraten. Die Eigenschaft

    Quellcode

    1. Modifers
    von der Richtextbox ist auf

    Quellcode

    1. Public

    @mox von der Form2:
    Form2

    C#-Quellcode

    1. ​using System;
    2. using System.Collections.Generic;
    3. using System.ComponentModel;
    4. using System.Data;
    5. using System.Drawing;
    6. using System.Linq;
    7. using System.Text;
    8. using System.Threading.Tasks;
    9. using System.Windows.Forms;
    10. namespace Löschen
    11. {
    12. public partial class Form2 : Form
    13. {
    14. public Form2()
    15. {
    16. InitializeComponent();
    17. }
    18. private void button1_Click(object sender, EventArgs e)
    19. {
    20. string Suchen = textBox1.Text;
    21. string Ersetzten = textBox2.Text;
    22. Form1 FormBearbeiter = new Form1();
    23. FormBearbeiter.richTextBox1.Text = FormBearbeiter.richTextBox1.Text.Replace(Suchen, Ersetzten);
    24. }
    25. }
    26. }

    von der Form1:
    Spoiler anzeigen

    C#-Quellcode

    1. using System;
    2. using System.Collections.Generic;
    3. using System.ComponentModel;
    4. using System.Data;
    5. using System.Drawing;
    6. using System.Linq;
    7. using System.Text;
    8. using System.Threading.Tasks;
    9. using System.Windows.Forms;
    10. namespace Löschen
    11. {
    12. public partial class Form1 : Form
    13. {
    14. public Form1()
    15. {
    16. InitializeComponent();
    17. }
    18. private void button1_Click(object sender, EventArgs e)
    19. {
    20. Form2 FormSuchen = new Form2();
    21. FormSuchen.Show();
    22. }
    23. }
    24. }​

    Bill Gates sagte 2004:

    "Spam wird in zwei Jahren der Vergangenheit angehören." :D

    Ignoriervorgang eingeleitet: 90%


    Meine aktuellen Projekte:

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „kingaaron98“ ()

    kingaaron98 schrieb:

    C#-Quellcode

    1. private void suchenErsetztenToolStripMenuItem_Click(object sender, EventArgs e)
    2. {
    3. Suchen_Ersetzten FormSuchen = new Suchen_Ersetzten();
    4. FormSuchen.Show();
    5. }
    Machst Du

    C#-Quellcode

    1. Suchen_Ersetzten FormSuchen;
    2. private void suchenErsetztenToolStripMenuItem_Click(object sender, EventArgs e)
    3. {
    4. if (this.FormSuchen != null && !this.FormSuchen.IsDisposed)
    5. {
    6. this.FormSuchen = new Suchen_Ersetzten();
    7. }
    8. if (!this.FormSuchen.Visible)
    9. {
    10. FormSuchen.Show();
    11. }
    12. }

    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    kingaaron98 schrieb:

    Was bewirken denn die if Abfragen?
    Probiere es aus und beerichte. 8o
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!