الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

مطلوب كود منع كتابة نص في مربع معين

بدأه عمر أبو معمر في 14 نوفمبر 2011 · 11 رد · 4,551 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

الاخوة الكرام

كيف يمكنني ان أجعل مربع النص لا يستقبل إلا أرقام فقط

وعند محاولة كتابة نص يتم اظهار مربع نص فيه تعليمات بعدم ايتقبال الحروف

وذلك في visual studio 2010

باستخدام c#

#2
عمر أبو معمر كتب:

الاخوة الكرام

كيف يمكنني ان أجعل مربع النص لا يستقبل إلا أرقام فقط

وعند محاولة كتابة نص يتم اظهار مربع نص فيه تعليمات بعدم ايتقبال الحروف

وذلك في visual studio 2010

باستخدام c#

if (!char.IsDigit(e.KeyChar) && !char.IsControl(e.KeyChar))
            {
                e.Handled = true;
            }

هذا في visual studio 2008

اعتقد انه نفس الفكرة اما اذا اردت ان يظهر لك رسالة ان مربع النص لا يستقبل سوى ارقام تستطيع اضافة ليبل وتتحكم بالرسالة التي تريد اظهارها .

من تواضع لله رفعه

#3
hussein2005 كتب:

if (!char.IsDigit(e.KeyChar) && !char.IsControl(e.KeyChar))
            {
                e.Handled = true;
            }

هذا في visual studio 2008

اعتقد انه نفس الفكرة اما اذا اردت ان يظهر لك رسالة ان مربع النص لا يستقبل سوى ارقام تستطيع اضافة ليبل وتتحكم بالرسالة التي تريد اظهارها .

هل هذا بلغة c# برنامج فجيوال ستديو 2010

#4

هذا بلغة (#C) برنامج فجوال ستوديو 2008

من تواضع لله رفعه

#5
hussein2005 كتب:

هذا بلغة (#C) برنامج فجوال ستوديو 2008

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

private void txtNumber_KeyPress(object sender, KeyPressEventArgs e)

{

if (e.KeyChar >= 48 && e.KeyChar <= 57)

{

}

else if (e.KeyChar == 8)

{

}

else

e.KeyChar = (char)0;

MessageBox.Show("You have to write Numbers Only", "Errer",MessageBoxButtons.OK,MessageBoxIcon.Error);

}

تم تعديل هذه المشاركة بواسطة essam_abboud في 16 نوفمبر 2011 في 08:47

1
#6
hussein2005 كتب:

هذا بلغة (#C) برنامج فجوال ستوديو 2008

 private void txtNumber_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (e.KeyChar >= 48 && e.KeyChar <= 57)
            {

            }
            else if (e.KeyChar == 8)
            {
            }
            else
                e.KeyChar = (char)0;
            MessageBox.Show("You have to write Numbers Only", "Errer",MessageBoxButtons.OK,MessageBoxIcon.Error);

        }

#7

خطأ فى الكود

#8

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

        private void textBox1_KeyDown(object sender, KeyEventArgs e)
        {
            if (!((e.KeyValue >= 48 && e.KeyValue <= 57) || (e.KeyValue >= 96 && e.KeyValue <= 105)))
            {
                MessageBox.Show("Error");
                textBox1.Text = textBox1.Text.Remove(textBox1.Text.Length - 1, 1);
            }

        }
#9

السلام عليكم

اخي اليك الكود التالي وسأحاول انا اشرحه:


if((e.KeyChar > '9' || e.KeyChar < '0') && e.KeyChar != 8)
{
e.Handled = true;
MessageBox.Show(" Please enter digits only");
}

اولا وطبعا يجب وضع هذا الكود ضمن الحدث الخاص

private void txtBox_KeyPress(object sender, EventArgs e)

ثانيا الكود:

في السطر الاول نقوم بالتحقق عند الضغط على اي محرف ضمن المربع النصي من انه اما احد الارقام من 0-9

او هو المحرف الخاص بحذف حرف واحد تلو الاخر (back space)

والسطر الثاني في حال كان غير ذلك سيقوم بتجاهل الادخال

والسطر الثالث والاخير ومن ثم اظهار رسالة تحذير انه لا يمكن ادخال غير الرقام.

تم تعديل هذه المشاركة بواسطة mhdnour في 17 نوفمبر 2011 في 18:48

#10
 private void txtBox_KeyPress(object sender, KeyPressEventArgs e) {
            if ((
                !char.IsDigit(e.KeyChar)) // للأرقام 0-9
                & 
                (e.KeyChar != '.')  //. للعلامة العشرية 
                & 
                !(char.IsControl(e.KeyChar))) // للمسح BackSpace
                e.Handled = true;  // لا تكتب إلا أرقام
            else
                e.Handled = false;  // يكتب ارقام
        }
1
#11

على ما اعتقد افضل طريقة هى استخدام ال regular expression

مثال

using System.Text.RegularExpressions;

private void textBox1_TextChanged(object sender, EventArgs e)
        {
            Regex x = new Regex("^\\d*$");
            if (!x.IsMatch(textBox1.Text))
            {
                MessageBox.Show("ادخل ارقام فقط");
                textBox1.Text = textBox1.Text.Remove(textBox1.Text.Length - 1, 1);
            }
        }

شرح هنا

مرفق برنامج للكود والتجربة

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

WindowsFormsApplication2.rar

تم تعديل هذه المشاركة بواسطة Black-Ghost في 14 يناير 2012 في 08:19

1
#12

يمكن استخدام maskedTextBox

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…