تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
تحديد كلمة من مجموعة كلمات في التكست بوكس
#1
بسم الله الرحمن الرحيم


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


كيف يمكن تحديد كلمة من مجموعة كلمات في TextBox أو RichTextBox عند الوقوف عليها وضغط زر الموس الأيمن وهذه الكلمات مفصولة بالمسافة
مثال:
يوجد تكس بوكس مكتوب به My name is Ismail
عند الوقوف مثلا على كلمة name وضغط زر الموس الأيمن يتم تظليل الكلمة name فقط ويتم ظهور القائمة التي بها نسخ لصق الخ طبعا عند الصغط نسخ يتم نسخ الكلمة المظله فقط
شكرا مقدما
الرد }}}}
تم الشكر بواسطة:
#2
السلام عليكم ورحمة الله وبركاته

تفضل أخي الكريم
وإن شاء الله الشرح يكون واضح

كود :
[color=#0000FF]Public Class [/color][COLOR="#2B91AF"]Form1
[/COLOR][color=#0000FF]#Region [/color][COLOR="#A31515"]"API Declaration"
    [/COLOR][color=#0000FF]Private Declare Sub [/color][color=#000000]mouse_event [/color][color=#0000FF]Lib [/color][color=#A31515]"user32" [/color][color=#0000FF]Alias [/color][color=#A31515]"mouse_event" [/color][color=#000000]([/color][color=#0000FF]ByVal [/color][color=#000000]dwFlags [/color][color=#0000FF]As UInteger[/color][color=#000000], [/color][color=#0000FF]ByVal [/color][color=#000000]dx [/color][color=#0000FF]As UInteger[/color][color=#000000], [/color][color=#0000FF]ByVal [/color][color=#000000]dy [/color][color=#0000FF]As UInteger[/color][color=#000000], [/color][color=#0000FF]ByVal [/color][color=#000000]cButtons [/color][color=#0000FF]As UInteger[/color][color=#000000], [/color][color=#0000FF]ByVal [/color][color=#000000]dwExtraInfo [/color][color=#0000FF]As UInteger[/color][COLOR="#000000"])
    [/COLOR][color=#0000FF]Private Const [/color][color=#000000]MOUSEEVENTF_LEFTDOWN = &H2 [/color][COLOR="#008000"]' left button down
    [/COLOR][color=#0000FF]Private Const [/color][color=#000000]MOUSEEVENTF_LEFTUP = &H4 [/color][COLOR="#008000"]' left button up
    [/COLOR][color=#0000FF]Private Const [/color][color=#000000]MOUSEEVENTF_MIDDLEDOWN = &H20 [/color][COLOR="#008000"]' middle button down
    [/COLOR][color=#0000FF]Private Const [/color][color=#000000]MOUSEEVENTF_MIDDLEUP = &H40 [/color][COLOR="#008000"]' middle button up
    [/COLOR][color=#0000FF]Private Const [/color][color=#000000]MOUSEEVENTF_RIGHTDOWN = &H8 [/color][COLOR="#008000"]' right button down
    [/COLOR][color=#0000FF]Private Const [/color][color=#000000]MOUSEEVENTF_RIGHTUP = &H10 [/color][COLOR="#008000"]' right button up
[/COLOR][COLOR="#0000FF"]#End Region
    Private Sub [/COLOR][color=#000000]TextBox1_Click([/color][color=#0000FF]ByVal [/color][color=#000000]sender [/color][color=#0000FF]As Object[/color][color=#000000], [/color][color=#0000FF]ByVal [/color][color=#000000]e [/color][color=#0000FF]As [/color][color=#000000]System.[/color][color=#2B91AF]EventArgs[/color][color=#000000]) [/color][color=#0000FF]Handles [/color][COLOR="#000000"]TextBox1.Click
        [/COLOR][COLOR="#0000FF"]Try
            [/COLOR][COLOR="#008000"]'التأكد من وجود نص داخل أداة النص
            [/COLOR][color=#0000FF]If [/color][color=#000000]TextBox1.Text = [/color][color=#A31515]"" [/color][COLOR="#0000FF"]Then Exit Sub
            [/COLOR][COLOR="#008000"]'متغيرين لتحديد بداية ونهاية الكلمة
            [/COLOR][color=#0000FF]Dim [/color][color=#000000]FirstLetter, LastLetter [/color][COLOR="#0000FF"]As Integer
            [/COLOR][COLOR="#008000"]'تحديد بداية الكلمة
            'وذلك عن طريق البحث عن مسافة أمام الكلمة
            [/COLOR][color=#000000]FirstLetter = TextBox1.Text.Substring(0, TextBox1.SelectionStart).LastIndexOf([/color][color=#A31515]" "[/color][COLOR="#000000"]) + 1
            [/COLOR][COLOR="#008000"]'لتحديد نهاية الكلمة
            [/COLOR][color=#000000]LastLetter = TextBox1.Text.IndexOf([/color][color=#A31515]" "[/color][COLOR="#000000"], FirstLetter)
            [/COLOR][COLOR="#008000"]'إذا كان نهاية الكلمة أصغر من بدايتها
            'فهذا يعني أن الكلمة المطلوبة تقع آخر النص
            [/COLOR][color=#0000FF]If [/color][color=#000000]LastLetter < FirstLetter [/color][color=#0000FF]Then [/color][COLOR="#000000"]LastLetter = TextBox1.TextLength
            [/COLOR][COLOR="#008000"]'تظليل الكلمة بعد أن عرفنا البداية والنهاية
            [/COLOR][COLOR="#000000"]TextBox1.SelectionStart = FirstLetter
            TextBox1.SelectionLength = LastLetter - FirstLetter
            [/COLOR][COLOR="#008000"]'هنا اظهرنا القائمة وذلك بطريقة
            'محاكاة النقر زر الفأرة الأيمن
            [/COLOR][COLOR="#000000"]mouse_event(MOUSEEVENTF_RIGHTDOWN, 0, 0, 0, 0)
            mouse_event(MOUSEEVENTF_RIGHTUP, 0, 0, 0, 0)
        [/COLOR][color=#0000FF]Catch [/color][color=#000000]ex [/color][color=#0000FF]As [/color][COLOR="#2B91AF"]Exception

        [/COLOR][COLOR="#0000FF"]End Try
    End Sub
End Class
[/COLOR]

بالتوفيق
الرد }}}}
تم الشكر بواسطة:
#3
شكرا لك أخي sooriaty03 ولكن أريد تظليل الكلمة عتد الضغط على زر الموس الأيمن وليس الأيسر لكي أستطيع تعديل الكلمة مثلا
وياريت إن كان في طريقة غير استخدام دوال API كنت وجدت طريقة في موقع أجنبي تستخدم الحدث MouseDown ولكن تظلل الكلمة عند الضغط على زر الموس الأيسر
شكرا مرة أخرى
الرد }}}}
تم الشكر بواسطة:
#4
وويش فيها الAPI ؟

لعلمك الدوت نت نفسه يستعمل الAPI

انما الدوال التي تراها مجرد "تغليف" للAPI

--

يمكنك استعمال الحدث Mouse_click لمعرفة الزر الذي تم الضغط عليه :
PHP كود :
Private Sub textBox1_MouseClick(sender As ObjectAs MouseEventArgsHandles textbox1.text
    
If e.Button MouseButtons.Right Then
               
'ضع كود اخي sooriaty03'
    
End If
End Sub 
الرد }}}}
تم الشكر بواسطة:
#5
السلام عليكم ورحمة الله وبركاته

تفضل أخي الكريم

كود :
[color=#0000FF]Public Class [/color][COLOR="#2B91AF"]Form1
    [/COLOR][color=#0000FF]Private Sub [/color][color=#000000]TextBox1_MouseDown([/color][color=#0000FF]ByVal [/color][color=#000000]sender [/color][color=#0000FF]As Object[/color][color=#000000], [/color][color=#0000FF]ByVal [/color][color=#000000]e [/color][color=#0000FF]As [/color][color=#000000]System.Windows.Forms.[/color][color=#2B91AF]MouseEventArgs[/color][color=#000000]) [/color][color=#0000FF]Handles [/color][COLOR="#000000"]TextBox1.MouseDown
        [/COLOR][color=#0000FF]If [/color][color=#000000]e.Button = MouseButtons.Right [/color][COLOR="#0000FF"]Then
            Try
                [/COLOR][COLOR="#008000"]'التأكد من وجود نص داخل أداة النص
                [/COLOR][color=#0000FF]If [/color][color=#000000]TextBox1.Text = [/color][color=#A31515]"" [/color][COLOR="#0000FF"]Then Exit Sub
                [/COLOR][COLOR="#008000"]'متغيرين لتحديد بداية ونهاية الكلمة
                [/COLOR][color=#0000FF]Dim [/color][color=#000000]FirstLetter, LastLetter [/color][COLOR="#0000FF"]As Integer
                [/COLOR][COLOR="#008000"]'تحديد بداية الكلمة
                'وذلك عن طريق البحث عن مسافة أمام الكلمة
                [/COLOR][color=#000000]FirstLetter = TextBox1.Text.Substring(0, TextBox1.SelectionStart).LastIndexOf([/color][color=#A31515]" "[/color][COLOR="#000000"]) + 1
                [/COLOR][COLOR="#008000"]'لتحديد نهاية الكلمة
                [/COLOR][color=#000000]LastLetter = TextBox1.Text.IndexOf([/color][color=#A31515]" "[/color][COLOR="#000000"], FirstLetter)
                [/COLOR][COLOR="#008000"]'إذا كان نهاية الكلمة أصغر من بدايتها
                'فهذا يعني أن الكلمة المطلوبة تقع آخر النص
                [/COLOR][color=#0000FF]If [/color][color=#000000]LastLetter < FirstLetter [/color][color=#0000FF]Then [/color][COLOR="#000000"]LastLetter = TextBox1.TextLength
                [/COLOR][COLOR="#008000"]'تظليل الكلمة بعد أن عرفنا البداية والنهاية
                [/COLOR][COLOR="#000000"]TextBox1.SelectionStart = FirstLetter
                TextBox1.SelectionLength = LastLetter - FirstLetter
            [/COLOR][color=#0000FF]Catch [/color][color=#000000]ex [/color][color=#0000FF]As [/color][COLOR="#2B91AF"]Exception

            [/COLOR][COLOR="#0000FF"]End Try
        End If
    End Sub
End Class
[/COLOR]

بالتوفيق
الرد }}}}
تم الشكر بواسطة:
#6
شكرا الشاكي لله وشكرا للأخ sooriaty03 الكود تمام ولكن يحتاج لمسه أخيره وهي أنه يتم تظليل الكلمة التي تحت المؤشر حتى عند الأنتقال للكلمة الأخري مثلا لو المؤشر في الكلمة التي في الوسط وذهبت للكلمة الأولى وضغط زر الموس الأيمن يتم تظليل الكلمة التي في الوسط أي التي بها مؤشر الكتابة نريد تظليل الكلمة التي يتم الضغط عليها
أشكر الجميع على التفاعل والمشاركة
الرد }}}}
تم الشكر بواسطة:
#7
ismail2012 كتب :شكرا الشاكي لله وشكرا للأخ sooriaty03 الكود تمام ولكن يحتاج لمسه أخيره وهي أنه يتم تظليل الكلمة التي تحت المؤشر حتى عند الأنتقال للكلمة الأخري مثلا لو المؤشر في الكلمة التي في الوسط وذهبت للكلمة الأولى وضغط زر الموس الأيمن يتم تظليل الكلمة التي في الوسط أي التي بها مؤشر الكتابة نريد تظليل الكلمة التي يتم الضغط عليها
أشكر الجميع على التفاعل والمشاركة

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

هناك مشاركة لأخي وأستاذي أبورائد بهذا الخصوص وقد اقتبست منه الطريقة ليصبح الكود بالشكل التالي

كود :
[color=#0000FF]Public Class [/color][COLOR="#2B91AF"]Form1
    [/COLOR][color=#0000FF]Private Sub [/color][color=#000000]TextBox1_MouseDown([/color][color=#0000FF]ByVal [/color][color=#000000]sender [/color][color=#0000FF]As Object[/color][color=#000000], [/color][color=#0000FF]ByVal [/color][color=#000000]e [/color][color=#0000FF]As [/color][color=#000000]System.Windows.Forms.[/color][color=#2B91AF]MouseEventArgs[/color][color=#000000]) [/color][color=#0000FF]Handles [/color][COLOR="#000000"]TextBox1.MouseDown
        [/COLOR][color=#0000FF]If [/color][color=#000000]e.Button = MouseButtons.Right [/color][COLOR="#0000FF"]Then
            Try
                [/COLOR][COLOR="#008000"]'التأكد من وجود نص داخل أداة النص
                [/COLOR][color=#0000FF]If [/color][color=#000000]TextBox1.Text = [/color][color=#A31515]"" [/color][COLOR="#0000FF"]Then Exit Sub
                [/COLOR][COLOR="#008000"]'هذه الخطوة مقتبسة من مثال للأخ الحبيب أبورائد
                'Richtextbox بعنوان كيف اعرف موقع الكلمة من الــ
                'http://vb4arb.com/vb/showthread.php?6229-%DF%ED%DD-%C7%DA%D1%DD-%E3%E6%DE%DA-%C7%E1%DF%E1%E3%C9-%E3%E4-%C7%E1%DC%DC-Richtextbox&p=24881&viewfull=1#post24881
                [/COLOR][color=#0000FF]Dim [/color][color=#000000]cursorAt [/color][color=#0000FF]As Integer [/color][COLOR="#000000"]= sender.GetCharIndexFromPosition(e.Location)
                [/COLOR][COLOR="#008000"]'متغيرين لتحديد بداية ونهاية الكلمة
                [/COLOR][color=#0000FF]Dim [/color][color=#000000]FirstLetter, LastLetter [/color][COLOR="#0000FF"]As Integer
                [/COLOR][COLOR="#008000"]'تحديد بداية الكلمة
                'وذلك عن طريق البحث عن مسافة أمام الكلمة
                [/COLOR][color=#000000]FirstLetter = TextBox1.Text.Substring(0, cursorAt).LastIndexOf([/color][color=#A31515]" "[/color][COLOR="#000000"]) + 1
                [/COLOR][COLOR="#008000"]'لتحديد نهاية الكلمة
                [/COLOR][color=#000000]LastLetter = TextBox1.Text.IndexOf([/color][color=#A31515]" "[/color][COLOR="#000000"], FirstLetter)
                [/COLOR][COLOR="#008000"]'إذا كان نهاية الكلمة أصغر من بدايتها
                'فهذا يعني أن الكلمة المطلوبة تقع آخر النص
                [/COLOR][color=#0000FF]If [/color][color=#000000]LastLetter < FirstLetter [/color][color=#0000FF]Then [/color][COLOR="#000000"]LastLetter = TextBox1.TextLength
                [/COLOR][COLOR="#008000"]'تظليل الكلمة بعد أن عرفنا البداية والنهاية
                [/COLOR][COLOR="#000000"]TextBox1.SelectionStart = FirstLetter
                TextBox1.SelectionLength = LastLetter - FirstLetter
            [/COLOR][color=#0000FF]Catch [/color][color=#000000]ex [/color][color=#0000FF]As [/color][COLOR="#2B91AF"]Exception

            [/COLOR][COLOR="#0000FF"]End Try
        End If
    End Sub
End Class[/COLOR]

بالتوفيق
الرد }}}}
تم الشكر بواسطة:
#8
بارك الله فيك أخي sooriaty03 هذا هو المطلوب
لدي طلب آخر لو سمحت
كيف يمكن إضافة خانة جديدة في القائمة التي تظهر عند ضغط زر الموس الأيمن
مثلا كيف يمكن إضافة خانة باسم Word تحت SelectAll في القائمة وبها قائمة فرعية بحجم الكلمة المظلله وتحتوي علي الكلمة المظلله ويكون ذلك في القائمة الإفتراضية للتكست بوكس وليس ContextMenustrip
الرد }}}}
تم الشكر بواسطة:
#9
توجد مشكلة في الكود SelectAll غير مقعله
الرد }}}}
تم الشكر بواسطة:
#10
عفوا الخطأ في برنامجي Big Grin
لقد أضفت ContextMenustrip وأضفت ليها عنصر وكتبت به SelectAll ونسيت أن أضيف الكودRolleyes
الرد }}}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  ازاى اما اكتب داتا فى التكست بوكس يدور عليها فى اى سطر ويزود على cell تانية 1 araxis 7 115 منذ 2 ساعة مضت
آخر رد: amgad525
  [سؤال] تغير لون كتابة التيكست بوكس ؟ Mido9 5 2,354 30-11-16, 10:16 PM
آخر رد: omferas
Photo ما هو كود عدم تطابق كلمة المرور السيد الجوهري 1 39 27-11-16, 04:37 PM
آخر رد: محمود بكرى
  [كود] الحذف من قاعدة البيانات بواسطة كلمة سر المبرمج العبقري 5 118 23-11-16, 05:21 PM
آخر رد: hglogtd
  كيف اقوم بتعبئت كمبو بوكس من جدول في اسكيول سيرفر معتز الجازوي 2 66 19-11-16, 03:10 AM
آخر رد: معتز الجازوي
  مسار قاعدة البيانات في التكست بوكس hglogtd 2 71 19-11-16, 02:19 AM
آخر رد: hglogtd
  الحذف من قاعدة البيانات بدلات تشيك بوكس في داتا جريدفيو makky 1 70 17-11-16, 10:50 PM
آخر رد: السرور
  كيف يمكن اضافة مجموعة حقول الي datagridview والتعديل عليها مباشرتا dark1459 2 67 15-11-16, 10:30 PM
آخر رد: السرور
  كيف اربط ثلاثة كومبو بوكس abanoub saeed nabil 6 175 13-11-16, 11:23 PM
آخر رد: هاوي1995
  [سؤال] طلب كود لتوليد قائمة كلمات سر عشواية (حروف فقط) فارس جراح 3 114 13-11-16, 10:40 PM
آخر رد: فارس جراح

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم