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

نسخة كاملة : هل يمكن معرفة مكان الجملة او كلمة في richtextbox و وضع فوقها ادات Label
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم


عندي نص في ادات richtextbox1
اريد عند كتابة كلمة او جملة في textbox اد كانت موجودة في richtextbox1 توضع فوق تلك الجملة او الكلمة ادات label 
مع مراعات ان الجملة قد تكون في اكثر من سطر

ملاحظة label توضع على الجملة التي في ادات richtextbox1

هل هدا ممكن با vb.net
السلام عليكم ورحمة الله وبركاته

نعم اخي ممكن عملتك كود يضع ليبل بلون احمر فوق الكلمة المطابقة

وضعتها بزر بوتون


كود :
Dim lbl As Label = Nothing
   Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
       Do
           Application.DoEvents()
           Dim index As Integer = RichTextBox1.Find(TextBox1.Text)
           Dim p As Point = RichTextBox1.GetPositionFromCharIndex(index)
           If RichTextBox1.SelectedText <> "" Then
               lbl = New Label With {.Text = TextBox1.Text, .ForeColor = Color.Red _
                            , .Location = New Point(p.X, p.Y), .AutoSize = True}
               RichTextBox1.SelectedText = ""
               RichTextBox1.Controls.Add(lbl)
           Else
               Exit Do
           End If
       Loop
   End Sub
(02-01-20, 02:15 PM)3booody كتب : [ -> ]السلام عليكم ورحمة الله وبركاته

نعم اخي ممكن عملتك كود يضع ليبل بلون احمر فوق الكلمة المطابقة

وضعتها بزر بوتون


كود :
Dim lbl As Label = Nothing
   Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
       Do
           Application.DoEvents()
           Dim index As Integer = RichTextBox1.Find(TextBox1.Text)
           Dim p As Point = RichTextBox1.GetPositionFromCharIndex(index)
           If RichTextBox1.SelectedText <> "" Then
               lbl = New Label With {.Text = TextBox1.Text, .ForeColor = Color.Red _
                            , .Location = New Point(p.X, p.Y), .AutoSize = True}
               RichTextBox1.SelectedText = ""
               RichTextBox1.Controls.Add(lbl)
           Else
               Exit Do
           End If
       Loop
   End Sub
السلام عليكم
جربت الكود لكن لا يعمل جيدا عندما اختار كلمة لا توضع فوقها بدقة 
و عندما اختار جملة لا توضع فوقها نهائيا توضع في اعلى richtextbox
الكود يعمل جيدآ على اللغة الانكليزية
غير الخاصية RightToLeft للاداة وغير بهذا الشكل للغة العربية


كود :
Dim lbl As Label = Nothing
   Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
       Do
           Application.DoEvents()
           Dim index As Integer = RichTextBox1.Find(TextBox1.Text)
           Dim p As Point = RichTextBox1.GetPositionFromCharIndex(index)
           If RichTextBox1.SelectedText <> "" Then
               lbl = New Label With {.Text = TextBox1.Text, .ForeColor = Color.Red _
                            , .Location = New Point(p.X, p.Y), .AutoSize = True, .RightToLeft = Windows.Forms.RightToLeft.Yes, .TextAlign = ContentAlignment.MiddleLeft}
               RichTextBox1.SelectedText = ""
               RichTextBox1.Controls.Add(lbl)
           Else
               Exit Do
           End If
       Loop
   End Sub
(10-01-20, 06:17 PM)3booody كتب : [ -> ]الكود يعمل جيدآ على اللغة الانكليزية
غير الخاصية RightToLeft للاداة وغير بهذا الشكل للغة العربية


كود :
Dim lbl As Label = Nothing
   Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
       Do
           Application.DoEvents()
           Dim index As Integer = RichTextBox1.Find(TextBox1.Text)
           Dim p As Point = RichTextBox1.GetPositionFromCharIndex(index)
           If RichTextBox1.SelectedText <> "" Then
               lbl = New Label With {.Text = TextBox1.Text, .ForeColor = Color.Red _
                            , .Location = New Point(p.X, p.Y), .AutoSize = True, .RightToLeft = Windows.Forms.RightToLeft.Yes, .TextAlign = ContentAlignment.MiddleLeft}
               RichTextBox1.SelectedText = ""
               RichTextBox1.Controls.Add(lbl)
           Else
               Exit Do
           End If
       Loop
   End Sub

سوف اجرب و اخبرك
سؤال لو اردت بدل مااضع ليبل فوق النص اغير لون النص مباشرة كيف اغير الكود  Angel
(10-01-20, 06:17 PM)3booody كتب : [ -> ]الكود يعمل جيدآ على اللغة الانكليزية
غير الخاصية RightToLeft للاداة وغير بهذا الشكل للغة العربية


كود :
Dim lbl As Label = Nothing
   Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
       Do
           Application.DoEvents()
           Dim index As Integer = RichTextBox1.Find(TextBox1.Text)
           Dim p As Point = RichTextBox1.GetPositionFromCharIndex(index)
           If RichTextBox1.SelectedText <> "" Then
               lbl = New Label With {.Text = TextBox1.Text, .ForeColor = Color.Red _
                            , .Location = New Point(p.X, p.Y), .AutoSize = True, .RightToLeft = Windows.Forms.RightToLeft.Yes, .TextAlign = ContentAlignment.MiddleLeft}
               RichTextBox1.SelectedText = ""
               RichTextBox1.Controls.Add(lbl)
           Else
               Exit Do
           End If
       Loop
   End Sub

للاسف لم يعمل عندي جيدا علىالعربية لكن على الانجليزية يعمل
هل يمكن تعديل الكود لتلوين النص بدل وضع عليه لابل

تمكنت من تلوين جملة او كلمة في سطر واحد لكن كيف الون جملة في اكثر من سطر ؟