منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : تغير لون الكلمة
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
أريد كود يغير لون الكلمة الي يكتبها مستخدم البرنامج في التكست بوست الى احمر
مثلاً اذا كتب
vb6 تصير الكلمة حمره
واريد الكود مجموعة من الكلمات
ممكن تردو ياجماعة
السلام عليكم

- إستخدم أداة RichTextBox حيث أنك لاتستطيع تلوين كلمة واحدة من النص في أداة النص العادية TextBox , إستخدم هذا الكود :


كود :
Private Sub Command1_Click()
        SetColorWords RichTextBox1, "vb6", vbRed
      End Sub

      Private Function SetColorWords(rtb As RichTextBox, _
                                  sFindString As String, _
                                  lColor As Long) _
                                  As Integer

        Dim lFoundPos As Long
                                      Dim lFindLength As Long
        Dim lOriginalSelStart As Long
        Dim lOriginalSelLength As Long
        Dim iMatchCount As Integer

      lOriginalSelStart = rtb.SelStart
        lOriginalSelLength = rtb.SelLength

        lFindLength = Len(sFindString)

         lFoundPos = rtb.Find(sFindString, 0, , rtfNoHighlight)

        While lFoundPos > 0

          iMatchCount = iMatchCount + 1

rtb.SelStart = lFoundPos
         rtb.SelLength = lFindLength
          rtb.SelColor = lColor

          lFoundPos = rtb.Find(sFindString, _
            lFoundPos + lFindLength, , rtfNoHighlight)
       Wend
      
        rtb.SelStart = lOriginalSelStart
        rtb.SelLength = lOriginalSelLength

        SetColorWords = iMatchCount  

End Function

- تحياتي .
اخي هذا لكلمة واحدة
هل تريد أنه إذا كتب المستخدم كلمة واحدة فقط في التكست بوكس وليس مجموعة كلمات من بينها كلمة vb6 .
اخي اريد كود لمجموعة كلمات ممكن؟
أخي لازم تستخدم أداة ال RichTextBox ، ثم أنسخ هذا الكود وإلصقه في داخل كود الفورم :

كود :
Private Sub RichTextBox1_Change()
        SetColorWords RichTextBox1, "vb6", vbRed
      End Sub

      Private Function SetColorWords(rtb As RichTextBox, _
                                  sFindString As String, _
                                  lColor As Long) _
                                  As Integer

        Dim lFoundPos As Long
                                      Dim lFindLength As Long
        Dim lOriginalSelStart As Long
        Dim lOriginalSelLength As Long
        Dim iMatchCount As Integer

      lOriginalSelStart = rtb.SelStart
        lOriginalSelLength = rtb.SelLength

        lFindLength = Len(sFindString)

         lFoundPos = rtb.Find(sFindString, 0, , rtfNoHighlight)

        While lFoundPos > 0

          iMatchCount = iMatchCount + 1

rtb.SelStart = lFoundPos
         rtb.SelLength = lFindLength
          rtb.SelColor = lColor

          lFoundPos = rtb.Find(sFindString, _
            lFoundPos + lFindLength, , rtfNoHighlight)
       Wend
      
        rtb.SelStart = lOriginalSelStart
        rtb.SelLength = lOriginalSelLength

        SetColorWords = iMatchCount  

End Function

- جرب .
السلام عليكم

- الكود بعد تعديل عليه :

كود :
Private Sub RichTextBox1_Change()
        SetColorWords RichTextBox1, "vb6", vbRed
      End Sub

Private Function SetColorWords(rtb As RichTextBox, _
                                  sFindString As String, _
                                  lColor As Long) _
                                  As Integer

        Dim lFoundPos As Long
                                      Dim lFindLength As Long
        Dim lOriginalSelStart As Long
        Dim lOriginalSelLength As Long
        Dim lOriginalColor As Long
        
        Dim iMatchCount As Integer

        lOriginalSelStart = rtb.SelStart
        lOriginalSelLength = rtb.SelLength
        lOriginalColor = rtb.SelColor
        
        lFindLength = Len(sFindString)

         lFoundPos = rtb.Find(sFindString, 0, , rtfNoHighlight)

        While lFoundPos > 0

          iMatchCount = iMatchCount + 1

         rtb.SelStart = lFoundPos
         rtb.SelLength = lFindLength
          rtb.SelColor = lColor

          lFoundPos = rtb.Find(sFindString, _
            lFoundPos + lFindLength, , rtfNoHighlight)
       Wend
      
        rtb.SelStart = lOriginalSelStart
        rtb.SelLength = lOriginalSelLength
        rtb.SelColor = lOriginalColor

        SetColorWords = iMatchCount

End Function

- تحياتي .