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

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

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

وشكرا لكم
السلام عليكم اخي الكريم
تفضل هذا الكود 
كود :
   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

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

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

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

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

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

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

استخدم الكود التالى فى حدث التنفيذ بعد انهاء المستخدم كم الكتابة
PHP كود :
TextSpaceToOne:
 
       TextBox1.Text TextBox1.Text.Replace(Space(2), Space(1))
 
       If (TextBox1.Text.Contains(Space(2))) Then GoTo TextSpaceToOne 
استفدت من مشاركة استاذي اخي ابراهيم ايبو بكلمات جديدة لم أكن أعرفها من قبل وهي
Sapce
TextLength
Select
واخيرا اسلوبه في ترتيب الكود ووضع الشرح لكل سطر
والتي سيكون لها أثر في اسلوب كتابتي للكود مستقبلا

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

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


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

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

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