منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
كيف اعرف موقع الكلمة من الــ Richtextbox - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182)
+--- قسم : قسم اسئلة VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=183)
+--- الموضوع : كيف اعرف موقع الكلمة من الــ Richtextbox (/showthread.php?tid=9519)

الصفحات: 1 2


كيف اعرف موقع الكلمة من الــ Richtextbox - أبو ريناد الحربي - 04-07-13

السلام عليكم ورحمة الله
أخواني كيف اعرف موقع الكلمة في الــ RichTextBox إن كانت الاولى او الثانية او ....
مثلا هذا الكود يعطيك عدد الكلمات الموجودة في الــ RichTextBox
PHP كود :
MsgBox(RichTextBox1.Text.Split.Count

لكن انا ريد عند وضع المؤشر على أي كلمة ان ياتيني برقمها التسلسلي
أو
ياتي بالكلمة نفسها اذا وضعت المؤشر عليها

ارجو الافادة بارك الله فيكم


كيف اعرف موقع الكلمة من الــ Richtextbox - محمود اكرم - 04-07-13

السلام عليكم
تفضل اخي هذا الكود لكل حالة طلبتها
إقتباس :لكن انا ريد عند وضع المؤشر على أي كلمة ان ياتيني برقمها التسلسلي
TextBox2.Text = RichTextBox1.SelectionStart
إقتباس :أو
ياتي بالكلمة نفسها اذا وضعت المؤشر عليها
TextBox1.Text = RichTextBox1.SelectedText


كيف اعرف موقع الكلمة من الــ Richtextbox - أبو ريناد الحربي - 05-07-13

شكرا اخ محمود
ولكن الذي اقصدة ان ياتيني برقم الكلمة وليس الحرف وكل شيء
يعني لوكن في الــ Richtextbox هذه العبارة
إقتباس :بسم الله الرحمن الرحيم
ووضعن المؤشر فوق كلمة
إقتباس :الرحمن
اريده يعطيني رقم 3 لانها ثالث كلمة أما بالطرقة التي وضعتها انت فانه يعطيني الرقم 13 لانه حسب الحروف والمسافات


كيف اعرف موقع الكلمة من الــ Richtextbox - محمود اكرم - 05-07-13

هل تقصد عندما تضللها ام فقط وضعت المؤشر على الكلمة


كيف اعرف موقع الكلمة من الــ Richtextbox - أبو ريناد الحربي - 05-07-13

لا فقط عند وضع المؤشر عليها
لان طريقة تظليل الكلمة اعرفها


كيف اعرف موقع الكلمة من الــ Richtextbox - محمود اكرم - 05-07-13

سأحاول اعطيني فرصة للغد :o


كيف اعرف موقع الكلمة من الــ Richtextbox - Aly El-Haddad - 05-07-13

بعد إذنك أخي محمود أكرم، كتبت هذا الكود إن شاء الله يلبي طلبك أخي أبو ريناد الحربي
PHP كود :
Public Class Form1

    
Private Sub Button1_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles Button1.Click
        MsgBox
("Index: " GetWordIndex(RichTextBox1.TextRichTextBox1.SelectionStart_
               
vbCrLf _
               
"Length: " GetWordLength(RichTextBox1.TextRichTextBox1.SelectionStart))

    
End Sub

    
Public Function GetWordIndex(ByVal text As StringByVal selection As Integer) As Integer
        Dim length 
As Integer text.Length
        
If selection >= length OrElse selection 0 Then Return -1
        Dim index 
As Integer selection
        
Do Until index 0
            
If text.Chars(index) = " "c OrElse text.Chars(index) = vbCrLf Then Exit Do
            
index -= 1
        Loop
        Dim splt 
As String() = text.Split(New Char() {" "cvbCrLf})
        
Dim count As Integer 0
        
For As Integer 0 To splt.Length 1
            
If count index Then
                
Return 1
            End 
If
            If 
0 Then
                count 
+= splt(I).Length 1
            
Else
                
count += splt(I).Length
            End 
If
        
Next
        
Return -1
    End 
Function

    Public Function 
GetWordLength(ByVal text As StringByVal selection As Integer) As Integer
        Dim length 
As Integer text.Length
        
If selection >= length OrElse selection 0 Then Return -1
        Dim index 
As Integer selection
        
Do Until index 0
            
If text.Chars(index) = " "c OrElse text.Chars(index) = vbCrLf Then Exit Do
            
index -= 1
        Loop
        
If index 0 Then
            Dim firstSpace 
As Integer text.IndexOf(" "c)
            
Dim firstLine As Integer text.IndexOf(vbCrLf)
            If 
firstSpace = -1 AndAlso firstLine = -1 Then Return text.Length
            
If firstSpace = -1 Then Return firstLine
            
If firstLine = -1 Then Return firstSpace
            
If firstLine firstSpace Then Return firstSpace Else Return firstLine
        End 
If
        
Dim spaceIndex As Integer text.Substring(index 1).IndexOf(" "c)
        
Dim lineIndex As Integer text.Substring(index 1).IndexOf(vbCrLf)
        If 
spaceIndex = -1 AndAlso lineIndex = -1 Then Return text.Substring(index 1).Length
        
If spaceIndex = -1 Then Return lineIndex
        
If lineIndex = -1 Then Return spaceIndex
        
If spaceIndex lineIndex Then
            
Return lineIndex
        
Else
            Return 
spaceIndex
        End 
If
        Return -
1
    End 
Function
End Class 



كيف اعرف موقع الكلمة من الــ Richtextbox - محمود اكرم - 05-07-13

السلام عليكم وبعد اذنك اخ Aly El-Haddad هذا كود اسهل للفهم وللسرعة
بما انك اخ Aly El-Haddad استعملت اداة القطع Split لذا استخدمتها بشكل اسهل واسرع
إقتباس :Dim wd
Dim m, x As Long
wd = Split(RichTextBox1.Text, " ")
For Each y In wd
x = x + Len(y) + 1
If x > RichTextBox1.SelectionStart Then
m = x - (Len(y) + 1)
MsgBox(y)
RichTextBox1.SelectionStart = m
RichTextBox1.SelectionLength = Len(y)
RichTextBox1.Focus()
Exit For
End If
Next
Big GrinBig GrinBig GrinBig Grin

استمتعوا بالكود ارجوا ان يكون هو المطلوب


كيف اعرف موقع الكلمة من الــ Richtextbox - أبو ريناد الحربي - 06-07-13

جزاكم الله خيرا يا اخوان
كنت اظن ان هنالك كود صغير من ضمن خيارة الــ RichTextBox لكن يبد انه لا يوجد
شكرا مرة اخرى


كيف اعرف موقع الكلمة من الــ Richtextbox - @@أبورائد@@ - 06-07-13

أبو ريناد الحربي كتب :أو
ياتي بالكلمة نفسها اذا وضعت المؤشر عليها


السلام عليكم ورحمة الله وبركاته



الحمد لله الذي بنعمته تتم الصالحات



إذا كنت تقصد بالمؤشر مؤشر الماوس وليس مؤشر الكتابة جرب هذا المثال (وجدته بمواقع متعددة وقمت بتحسينه)







السلام عليكم ورحمة الله وبركاته