0
我目前正在嘗試開發一個行爲類似於Notepad ++ s的軟件。關於「着色」部分,我使用正則表達式和包含每個單詞的正則表達式顏色的外部文件。RichTextbox着色行爲
該文件看起來如下:
<script&blue
/>&blue
\".*?\"&red
然後,該軟件讀取該文件,並通過在每個新行字符分割它把它轉換成一個字符串數組「字符串[]」。這個數組被稱爲'校正器'。然後我用下面的方法來找到&設置每個字匹配正則表達式的顏色:
foreach (string corrector in Correctors) {
string[] spTxt = corrector.Split('&');
Match matches = Regex.Match(rtb_Main.Text, spTxt[0]);
Color color = Color.FromName(spTxt[1]);
while (matches.Success)
{
rtb_Main.SelectionStart = matches.Index;
rtb_Main.SelectionLength = matches.Length;
rtb_Main.SelectionColor = color;
matches = matches.NextMatch();
}
}
這就是問題發生。該方法的工作原理與數組'Correctors'中的最後一個字符串一致。然而;似乎數組中的其他對象被覆蓋或忽略,因爲匹配其模式的單詞沒有被着色。
出了什麼問題?
在此先感謝,
- Rasmus。
您是否獲得一個例外?一個奇怪的結果?如果是這樣,它會幫助你,如果你發佈它們。 –