منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
[VB.NET] منع ادخال اكثر من مسافه بين الكلمات في التكست بوكس - نسخة قابلة للطباعة

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



منع ادخال اكثر من مسافه بين الكلمات في التكست بوكس - سميـر - 21-08-19

السلام عليكم

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

وشكرا لكم


RE: منع ادخال اكثر من مسافه بين الكلمات في التكست بوكس - ابراهيم ايبو - 21-08-19

السلام عليكم اخي الكريم
تفضل هذا الكود 
كود :
   Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
       If TextBox1.Text = TextBox1.Text.Trim & (Space(2)) Then ' اذا كان النص مع القص زائد فراغين
           TextBox1.Text = TextBox1.Text.Trim & (Space(1)) ' قص النص وضع له فراغ واحد
           TextBox1.Select(TextBox1.TextLength, 0) ' أختر طول النص كله ولمسافة صفر
           TextBox1.Focus()
       End If

   End Sub




RE: منع ادخال اكثر من مسافه بين الكلمات في التكست بوكس - سميـر - 21-08-19

جزاك الله خير اخي ابراهيم ايبو

الكود جيد ولكن فيه مشكله لو تم نقل المؤشر بين الكلمات سواء بالماوس او الاسهم فبامكان المستخدم وضع اكثر من مسافه.

اشكر جدا اخي ابراهيم ايبو على الاهتمام والمساعده


RE: منع ادخال اكثر من مسافه بين الكلمات في التكست بوكس - ابراهيم ايبو - 21-08-19

السلام عليكم اخي الكريم سمير
لايحضرني كبف حل مشكلة وضع المؤشر بين كلمتين واضافة اكثر من فراغ ومنع ذلك
ولكن اليك حل اسعافي يستفاد منه .. يمكن عمل مصفوفة من كلمات النص بدلالة الفراغ
 ثم اعادة الكلمات مرة اخرى الى النص مع اضافة فراغ واحد بعد كل كلمة وسأترك مهمة كتابة الكود لك  لتكتسب خبرة
دمت بخير
علمني كيف اصطاد ولاتعطيني سمكة



RE: منع ادخال اكثر من مسافه بين الكلمات في التكست بوكس - سميـر - 21-08-19

مجرد مشاركة استاذ كبير ومحترم مثلك يكفيني شرفا

اشكرك جدا اخي ابراهيم ايبو


RE: منع ادخال اكثر من مسافه بين الكلمات في التكست بوكس - viv - 21-08-19

كما قال الاخ ابرهيم او استخدم الطريقة التالية

كود :
Dim F As String
       For Each s As String In TextBox1.Text.Split(" ")
           If s <> "" Then
               F &= s & " "
           End If
       Next
       TextBox2.Text = F

ارى ان تترك المستخدم يدخل ما يريد وعند الحفظ تقوم بازالة الفراغات الزائدة جرب ضع اداتين تكست وزر اكتب في الكود
اعتقد سوف يعمل معك جيدا


RE: منع ادخال اكثر من مسافه بين الكلمات في التكست بوكس - ابراهيم ايبو - 21-08-19

لا كبير الا الله الغفور الرحيم 
اشكرك اخي على اطرائك وثنائك فنحن مثلك نتعلم كل يوم
نخطئ كثبرا ونصيب قليلا



RE: منع ادخال اكثر من مسافه بين الكلمات في التكست بوكس - kiki - 22-08-19

الكود الصحيح والمناسب لهذا الامر هو الكود التالى
حيث عندما يتواجد المسافى اكثر من مسافة واحدة سيتم تحولها الى مسافة واحدة
اينما تقع المسافة بالجملة

استخدم الكود التالى فى حدث التنفيذ بعد انهاء المستخدم كم الكتابة
PHP كود :
TextSpaceToOne:
 
       TextBox1.Text TextBox1.Text.Replace(Space(2), Space(1))
 
       If (TextBox1.Text.Contains(Space(2))) Then GoTo TextSpaceToOne 



RE: منع ادخال اكثر من مسافه بين الكلمات في التكست بوكس - سميـر - 22-08-19

استفدت من مشاركة استاذي اخي ابراهيم ايبو بكلمات جديدة لم أكن أعرفها من قبل وهي
Sapce
TextLength
Select
واخيرا اسلوبه في ترتيب الكود ووضع الشرح لكل سطر
والتي سيكون لها أثر في اسلوب كتابتي للكود مستقبلا

واستفدت من مشاركة اخي vip فكرة ترك المستخدم يكتب ما يشاء ثم عند الانتهاء يتم حذف المسافات الزائدة بين الكلمات
وقد شاركه بنفس المفهوم الاخ kiki مشكورا

استاذي العزيز ابراهيم ايبو ردك الاخير يدل على تواضعك فجزاك الله خيرا


ارسلت لزميلي كل مشاركات الأخوة الأعضاء في هذا الموضوع
فأرسل لي سطر كود تطبيقا لفكرة حذف المسافات بعد انتهاء المستخدم من الكتابه
وسمح لي بمشاركته هنا للفائدة

يتم وضع سطر الكود هذا في الحدث losefocus للتكست بوكس
sender.Text=System.Text.RegularExpressions.Regex.Replace(sender.Text,"\s+",space(1)).Trim

واشكركم جزيل الشكر


RE: منع ادخال اكثر من مسافه بين الكلمات في التكست بوكس - ابراهيم ايبو - 22-08-19

الحمد لله والشكر لله
ولهذا المنتدى الرائع