ניווט

    תחומים
    • הרשמה
    • התחברות
    • חיפוש
    • קטגוריות
    • פוסטים אחרונים
    • משתמשים
    • חיפוש
    • מקצועות
    חוקי הפורום

    עזרה ב c# | סימון מילים ב richTextBox

    תכנות
    2
    3
    76
    טוען פוסטים נוספים
    • מהישן לחדש
    • מהחדש לישן
    • הכי הרבה הצבעות
    תגובה
    • הגב כנושא
    התחבר בכדי לפרסם תגובה
    נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
    • נ נח
      נ נח נערך לאחרונה על ידי נ נח

      אני רוצה שכשכותבים מילה בrichTextBox1 (לדוגמא "start")
      היא תהיה בצבע אדום
      (דומה לnotepad ++)
      d6f2c01e-e5c7-4770-b0a9-28d8523d653e-image.png

      זה הקוד שעשיתי, כל פעם שכותבים ב 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;
                      }
                  }
              }
      

      תודה רבה!

      OdedDvir תגובה 1 תגובה אחרונה תגובה ציטוט 1
      • OdedDvir
        OdedDvir @נ נח נערך לאחרונה על ידי OdedDvir

        @נ-נח זה בגלל שהפונקציה משנה את מיקום הסמן.
        אתה צריך לשמור את המיקום הנוכחי בתחילת הפונקציה, וביציאה להזיז לשם את הסמן.
        תוסיף בתחילת הפונקציה את השורה הבאה:

         var currentPosition = richTextBox1.SelectionStart;
        

        ובסוף לפני היציאה מהפונקציה:

        richTextBox1.Select(currentPosition , 0);
        
        נ נח תגובה 1 תגובה אחרונה תגובה ציטוט 5
        • נ נח
          נ נח @OdedDvir נערך לאחרונה על ידי

          @odeddvir תודה רבה!!

          תגובה 1 תגובה אחרונה תגובה ציטוט 2
          • 1 / 1
          • First post
            Last post
          בא תתחבר לדף היומי!