Home > front end >  Color change of selected text not working
Color change of selected text not working

Time:08-08

Hey Guys im currently stuck in writing a Debug function where my Exception should gets printed in Red to an RichTextBox. I tried different solutions i've found here but they are not working, so i think i'm doing something wrong.

Here is my Function where the Text gets printed in Red:

public void DebugHighlighter(string s)
    {
        /*
        richTextBoxOutput.SelectionColor = Color.Red;
        richTextBoxOutput.SelectedText = s;
        
        richTextBoxOutput.SelectionColor = Color.Red;
        richTextBoxOutput.Text  = s   "\n";
        richTextBoxOutput.Find(s);
        */

        richTextBoxOutput.SelectionColor = Color.Red;
        richTextBoxOutput.AppendText(s);
        richTextBoxOutput.AppendText("\n");
        int index = richTextBoxOutput.Text.IndexOf(s);
        int lenght = s.Length;
        richTextBoxOutput.Select(index, lenght);
    }

Here is the function that gives the string to the DebugHighlighter:

try
            {
                if (!reversed)
                {
                    string outputSplitter = Regex.Replace(output2[19], @"[a-zA-z]", " ");
                    outputBandwith = outputSplitter.Split(" ", StringSplitOptions.RemoveEmptyEntries);
                    bandwithResult = outputBandwith[3];
                }
                else if (reversed)
                {
                    string outputSplitter = Regex.Replace(output2[20], @"[a-zA-z]", " ");
                    outputBandwith = outputSplitter.Split(" ", StringSplitOptions.RemoveEmptyEntries);
                    bandwithResult = outputBandwith[3];
                }
            }
            catch(IndexOutOfRangeException ex)
            {
                OutputConsoleForm._OutputConsoleForm.DebugHighlighter("Index out of Range");
            }

I will also attach an Screenshot of the Output(I put a box on the Output which should be printed in red).

I hope someone can tell me the little or bigger thing which im doing wrong here. I already looked on reddit/stackoverflow/msdn but no variant works out for me.

Output

    public void DebugHighlighter(string firstParagraph, string s, string lastParagraph, RichTextBox RTB)
    {
        RTB.AppendText(firstParagraph);
        RTB.AppendText(s   "\n");
        RTB.Select(firstParagraph.Length, s.Length);
        RTB.SelectionColor = Color.Red;
        RTB.AppendText(lastParagraph);

    }

    private void CheckButton_Click(object sender, EventArgs e)
    {
        //This part is only for creating exceptions, and I only used it as an example.
        int Max = int.Parse(TextBox.Text);
        int[] Array = new int[7];
        Random RandomNumber = new Random();
        try
        {
            for (int i = 0; i < Max; i  )
            {
                Array[i] = RandomNumber.Next(0, 100);
            }
            MessageBox.Show(Array[6].ToString());
        }
        catch (IndexOutOfRangeException)
        {
            RichTextBox.Text = "";
            string FirstParagraph = "Your paragraph...\n";
            string LastParagraph = "Your paragraph...";
            DebugHighlighter(FirstParagraph, "IndexOutOfRangeException", LastParagraph, RichTextBox);
        }
    }

    private void ClearRichTextBox_Click(object sender, EventArgs e)
    {
        RichTextBox.Text = "";
    }

Tested in:

Visual Studio 2017, .NET Framework 4.5.2, Windows Forms

Best regards,

Reza Jaferi

  • Related