تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[VB.NET] طلب كود معرفة موضع مؤشر الماوس داخل التيكست بوكس
#1
السلام عليكم
الإخوة الأعزاء

أريد كود لمعرفة موضع مؤشر الماوس داخل التيكست بوكس

مثلا عندي TextBox1 تحتوي على نص وليكن: بسم الله الرحمن الرحيم
وعندي زر، وعند الضغط عليه:
إذا كان المؤشر في بداية النص (قبل كلمة بسم) سيضيف نصا معينا
وإذا كان بعد النص (بعد كلمة الرحيم) سيضيف نصا آخر
وإذا كان أثناء الكلام سيضيف نصا ثالثا
------------------
وجزاكم الله خيرا
الرد }}}
تم الشكر بواسطة:
#2
مرحبا اخى

تفضل
PHP كود :
Dim a As Integer TextBox1.SelectionStart 'مكان المؤشر'
Dim b As String TextBox1.Text.Substring(a'النص بعد المؤشر'
Dim c As String TextBox1.Text.Substring(0a'النص قبل المؤشر'

If b.Trim.StartsWith("بسم"Then
    TextBox1
.SelectedText " " "نصا معينا" " "
End If

If 
c.Trim.EndsWith("الرحيم"Then
    TextBox1
.SelectedText " " "نصا آخر" " "
End If

If 
Not (b.Trim.StartsWith("بسم") Or c.Trim.EndsWith("الرحيم")) Then
    TextBox1
.SelectedText " " "نصا ثالثا" " "
End If 
الرد }}}
تم الشكر بواسطة: waelalmsry75 , حسن الجلب , حسن الجلب
#3
(06-08-17, 07:27 AM)أبو نوره كتب : مرحبا اخى

تفضل
PHP كود :
Dim a As Integer TextBox1.SelectionStart 'مكان المؤشر'
Dim b As String TextBox1.Text.Substring(a'النص بعد المؤشر'
Dim c As String TextBox1.Text.Substring(0a'النص قبل المؤشر'

If b.Trim.StartsWith("بسم"Then
    TextBox1
.SelectedText " " "نصا معينا" " "
End If

If 
c.Trim.EndsWith("الرحيم"Then
    TextBox1
.SelectedText " " "نصا آخر" " "
End If

If 
Not (b.Trim.StartsWith("بسم") Or c.Trim.EndsWith("الرحيم")) Then
    TextBox1
.SelectedText " " "نصا ثالثا" " "
End If 

بارك الله فيك أخي أبو نوره
سلمت يداك

حاولت عمل متغير لأول النص وآخره، لكن لم يضبط معي
فلو تكرمت بعمل متغير لأول النص بدلا من كلمة "بسم"
ولآخر النص بدلا من كلمة "الرحيم"
وتغيير ما يلزم في الكود

وجزاك الله خيرا
الرد }}}
تم الشكر بواسطة: أبو نوره
#4
تحت امرك اخى

تفضل
PHP كود :
Dim s1 As String "بسم"
Dim s2 As String "الرحيم"

Dim a As Integer TextBox1.SelectionStart 'مكان المؤشر'
Dim b As String TextBox1.Text.Substring(a'النص بعد المؤشر'
Dim c As String TextBox1.Text.Substring(0a'النص قبل المؤشر'

If b.Trim.StartsWith(s1Then
    TextBox1
.SelectedText " " "نصا معينا" " "
End If

If 
c.Trim.EndsWith(s2Then
    TextBox1
.SelectedText " " "نصا آخر" " "
End If

If 
Not (b.Trim.StartsWith(s1) Or c.Trim.EndsWith(s2)) Then
    TextBox1
.SelectedText " " "نصا ثالثا" " "
End If 
الرد }}}
تم الشكر بواسطة: waelalmsry75 , waelalmsry75
#5
(06-08-17, 12:18 PM)أبو نوره كتب : تحت امرك اخى

تفضل
PHP كود :
Dim s1 As String "بسم"
Dim s2 As String "الرحيم"

Dim a As Integer TextBox1.SelectionStart 'مكان المؤشر'
Dim b As String TextBox1.Text.Substring(a'النص بعد المؤشر'
Dim c As String TextBox1.Text.Substring(0a'النص قبل المؤشر'

If b.Trim.StartsWith(s1Then
    TextBox1
.SelectedText " " "نصا معينا" " "
End If

If 
c.Trim.EndsWith(s2Then
    TextBox1
.SelectedText " " "نصا آخر" " "
End If

If 
Not (b.Trim.StartsWith(s1) Or c.Trim.EndsWith(s2)) Then
    TextBox1
.SelectedText " " "نصا ثالثا" " "
End If 

بارك الله فيك أخي الكريم
لكني قصدت شيئا آخر
وهو

dim s1 as string = ...

لا أريد وضع نص مكان النقاط؛ لأنه كما تعلم النصوص متغيرة
إنما أريد وضع متغير يدل على أن مؤشر الماوس قبل النص في التيكست (أي قبل أول حرف) (لا أدري كيف يعبر عنه برمجيا، وليكن مثلا: TextSelectionStart)

كذلك
dim s2 as string = ...
أريد وضع متغير يدل على أن مؤشر الماوس بعد النص في التيكست (أعني بعد آخر حرف)
(وليكن مثلا مكان النقاط: TextSelectionEnd)

---------------
وجزاك الله خيرا
الرد }}}
تم الشكر بواسطة: أبو نوره , أبو نوره
#6
تحت امرك اخى مفيش مشكله

تفضل
PHP كود :
Private Sub Button1_Click(sender As System.ObjectAs System.EventArgsHandles Button1.Click

    MsgBox
(GetCartPositionState(TextBox1"بسم""الرحيم").ToString)

End Sub

Function GetCartPositionState(mTextBox As TextBoxAfterText As StringBeforeText As String) As CaretPositionState
    Dim CaretPosition 
As Integer mTextBox.SelectionStart 'مكان المؤشر'
 
   Dim AfterCaretPosText As String mTextBox.Text.Substring(CaretPosition'النص بعد المؤشر'
 
   Dim BeforeCaretPosText As String mTextBox.Text.Substring(0CaretPosition'النص قبل المؤشر'

 
   If AfterCaretPosText.Trim.StartsWith(AfterTextThen
        Return CaretPositionState
.Before
    End 
If

 
   If BeforeCaretPosText.Trim.EndsWith(BeforeTextThen
        Return CaretPositionState
.After
    End 
If

 
   Return CaretPositionState.Between
End 
Function

Enum CaretPositionState
    After 
'بعد'
 
   Before 'قبل'
 
   Between 'بين'
End Enum 
الرد }}}
تم الشكر بواسطة: waelalmsry75
#7
(06-08-17, 07:16 PM)أبو نوره كتب : تحت امرك اخى مفيش مشكله

تفضل
PHP كود :
Private Sub Button1_Click(sender As System.ObjectAs System.EventArgsHandles Button1.Click

    MsgBox
(GetCartPositionState(TextBox1"بسم""الرحيم").ToString)

End Sub

Function GetCartPositionState(mTextBox As TextBoxAfterText As StringBeforeText As String) As CaretPositionState
    Dim CaretPosition 
As Integer mTextBox.SelectionStart 'مكان المؤشر'
 
   Dim AfterCaretPosText As String mTextBox.Text.Substring(CaretPosition'النص بعد المؤشر'
 
   Dim BeforeCaretPosText As String mTextBox.Text.Substring(0CaretPosition'النص قبل المؤشر'

 
   If AfterCaretPosText.Trim.StartsWith(AfterTextThen
        Return CaretPositionState
.Before
    End 
If

 
   If BeforeCaretPosText.Trim.EndsWith(BeforeTextThen
        Return CaretPositionState
.After
    End 
If

 
   Return CaretPositionState.Between
End 
Function

Enum CaretPositionState
    After 
'بعد'
 
   Before 'قبل'
 
   Between 'بين'
End Enum 

ربنا يبارك فيك أخي أبو نوره.. ونفع الله بعلمك
سأجربه وأخبرك بالنتيجة
جزاك الله خيرا
الرد }}}
تم الشكر بواسطة: أبو نوره
#8
أخي الكريم أبو نوره
عملت تجارب كثيرة على ما تفضلت به
ونجح معي الكود التالي في تحقيق ما أريد
كود :
Dim CaretPosition As Integer = TextBox1.SelectionStart
       If CaretPosition = 0 Then
           TextBox1.SelectedText = " " & "إدراج قبل النص" & " "
       ElseIf CaretPosition = TextBox1.Text.Length Then
           TextBox1.SelectedText = " " & "إدراج بعد النص" & " "
       Else
           TextBox1.SelectedText = " " & "إدراج أثناء النص" & " "
       End If

وقد استفدت من الأكواد التي ذكرتها في جوانب أخرى غير ذلك
فجزاك الله خيرا
وجعل ذلك في ميزان حسناتك
الرد }}}
تم الشكر بواسطة: أبو نوره , سعود الشامان


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  تظليل التكست بوكس عند وضع المؤشر مصمم هاوي 2 125 02-03-24, 08:48 AM
آخر رد: مصمم هاوي
  بحث بالكومبو بوكس لا ى جزء من النص Lathe1 3 433 28-02-24, 02:59 AM
آخر رد: معاند الحظ
  معرفة رصيدي للهاتف النقال المتصل بالكمبيوتر وارسال رسائل نصية منه AHMED213 0 88 22-02-24, 11:47 AM
آخر رد: AHMED213
  [VB.NET] معرفة بيانات الجهاز محمد بوقزاحة 1 302 21-02-24, 11:44 PM
آخر رد: AHMED213
  معرفة عدد مرات تكرار الاسم في الداتاقريدفيو صالح عبدالله 8 419 05-02-24, 04:39 PM
آخر رد: صالح عبدالله
  [VB.NET] معرفة بيانات الجهاز محمد بوقزاحة 7 674 12-01-24, 07:31 PM
آخر رد: Kamil
  [سؤال] كيفية انشاء فورم داخل مشروعى عاصم النجار 2 303 05-01-24, 12:36 AM
آخر رد: HALIM ELEULMA
  حماية عمود داخل ورقة الاكسل العيدروس 3 187 05-01-24, 12:21 AM
آخر رد: HALIM ELEULMA
  معرفة عدد الاشهر خلال فترة زمنيةمعينة boofa2022 0 169 01-01-24, 01:18 PM
آخر رد: boofa2022
  كيف ارسل مجموع 3 تكست بوكس إلى واحد بالترتيب ؟ أبووسم 3 323 18-12-23, 05:17 PM
آخر رد: أبووسم

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


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