当离开richtextbox时,所有文本颜色都改为第一个字符颜色

时间:2015-12-28 17:48:01

标签: c# winforms

在我的C#WinForm项目中,当我离开richtextbox并输入另一个组件时,richtextbox颜色中的所有文本都更改为第一个字符颜色。

2 个答案:

答案 0 :(得分:0)

谢谢所有人 但我绑定了富文本框并使用数据绑定填充它,之后我使用此void v_srarch_WithOutTashkilAll为某些单词设置了acolor 设置颜色后如果我使用鼠标单击将富文本框控件留给其他控件,则富文本框中的所有文本都使用第一个字符重新着色

答案 1 :(得分:-1)

这个虚空创建用于查找名为rtb的富文本框中的所有单词并将单词颜色更改为红色它正常工作但是如果我将富文本框控件留给其他控件,则所有字符颜色都是第一个字符颜色,这是我的问题

public void v_srarch_WithOutTashkilAll(string word,RichTextBox rtb)         {

        try
        {

            if (startSelection >= 0)
            {
                startSelection = rtb.Find(word, startSelection, rtb.TextLength, RichTextBoxFinds.None);
            }

            if (startSelection != -1)
            {
                char[] arr = new char[] { 'ّ', 'َ', 'ً', 'ُ', 'ٌ', 'ِ', 'ٍ', 'ْ' };


                int index = 0;
                string CurrentWord = "";
                char charForTest;
                try
                {
                    while (CurrentWord != word)
                    {
                        rtb.Select(startSelection + index, 1);
                        charForTest = Convert.ToChar(rtb.SelectedText);
                        if (arr.Contains(charForTest))
                        {
                            index++;

                        }
                        else
                        {
                            CurrentWord += charForTest.ToString();
                            index++;
                        }
                    }
                    rtb.Select(startSelection, index);
                    rtb.SelectionColor = System.Drawing.Color.Red;
                    startSelection += index;
                    v_srarch_WithOutTashkilAll(word, rtb);
                }
                catch (Exception)
                { }

            }
        }
        catch (Exception)
        { }
    }