-
אני רוצה שכשכותבים מילה בrichTextBox1 (לדוגמא "start")
היא תהיה בצבע אדום
(דומה לnotepad ++)
זה הקוד שעשיתי, כל פעם שכותבים ב richTextBox1 הוא עושה חיפוש ואם הוא מוצא "start" הוא הופך אותו לאדום
הבעיה שבכל אות שכותבים העכבר עובר להתחלהprivate void richTextBox1_TextChanged(object sender, EventArgs e) { string[] words = "start".Split(','); foreach (string word in words) { int startIndex = 0; while (startIndex < richTextBox1.TextLength) { int wordStartIndex = richTextBox1.Find(word, startIndex, RichTextBoxFinds.None); if (wordStartIndex != -1) { richTextBox1.SelectionStart = wordStartIndex; richTextBox1.SelectionLength = word.Length; richTextBox1.SelectionColor = Color.Red; } else break; startIndex += wordStartIndex + word.Length; } } }
תודה רבה!
-
@נ-נח זה בגלל שהפונקציה משנה את מיקום הסמן.
אתה צריך לשמור את המיקום הנוכחי בתחילת הפונקציה, וביציאה להזיז לשם את הסמן.
תוסיף בתחילת הפונקציה את השורה הבאה:var currentPosition = richTextBox1.SelectionStart;
ובסוף לפני היציאה מהפונקציה:
richTextBox1.Select(currentPosition , 0);
-