بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاته
إذا مثلا لدي TextBox واريد منع المستخدم من استخدام زر المسافة فلا يقوم بعمل المسافات بين الكلمات
فما الكود المطلوب لذلك
شكرا والسلام عليكم ورحمة الله وبركاته
بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاته
إذا مثلا لدي TextBox واريد منع المستخدم من استخدام زر المسافة فلا يقوم بعمل المسافات بين الكلمات
فما الكود المطلوب لذلك
شكرا والسلام عليكم ورحمة الله وبركاته
تم تعديل هذه المشاركة بواسطة اسلام حسن في 17 يوليو 2008 في 08:08
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == ' ')
e.Handled = true;
}أو
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == (char)32)
e.Handled = true;
}تم تعديل هذه المشاركة بواسطة نورا مجدى في 17 يوليو 2008 في 10:22
جزاك الله خيرا وجعله في ميزان حسناتك
شكرا جزيلا
نورا مجدي
شكرا على الطريقة
هل استخدم نفس الاسلوب لمنع كتابة احرف داخل آلة حاسبة ؟ سوف يكون الكود طويل جداً لان هناك حوالي 26 حرف انجليزي و 28 حرف عربي بالاضافة الى الرموز :(
لاله الحاسبة
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if (char.IsNumber(e.KeyChar) == false && (e.KeyChar != '.' || textBox1.Text.Contains('.')))
e.Handled = true;
}عندما استخدم الشرط الاول ( التعامل يتم مع ارقام integers ) وهو :
فانه لا يمكن استخدام زر backspace بل فقط delete ، فهل هناك رمز او constant value معينة لزر backspace حتى استثنياه من الشرط لتعمل؟
مجلـد جديـد كتب:فهل هناك رمز او constant value معينة لزر backspace حتى استثنياه من الشرط لتعمل؟
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if (char.IsNumber(e.KeyChar) == false && e.KeyChar != 8 && (e.KeyChar != '.' || textBox1.Text.Contains('.')))
e.Handled = true;
}السلام عليكم
كنت في وقت سابق قد بحثت كثيراً في هذا الموضوع وكان من ضمن ما صادفته كود الأخت نورا مجدى :
if (char.IsNumber(e.KeyChar) == false && e.KeyChar != 8 && (e.KeyChar != '.' || textBox1.Text.Contains(".")))
e.Handled = true;لكن ماذا لو أردنا استقبال أعداد سالبة أيضاً فإننا سنضطر لتعديل ليسمح بذلك وسنواجه مشكلة أخرى هي عدم السماح بوضع الإشارة في منتصف العدد :)
بعد أن نقوم بمعالجة هذه المشكلة ستظهر مشاكل أخرى من بينها على سبيل المثال إمكانية لصق أي محتوى من الحافظى إلى مربع النص وستضطر لزيادة الكود البرمجي لمنع ذلك :)
لذلك أنصح جميع الإخوة بالابتعاد عن ذلك في البرامج الفعلية واستخدام الكود التالي :
int t;
try
{
t = int.Parse(textBox1.Text);
}
catch
{
MessageBox.Show("يجب إدخال قيمة صحيحة", "خطأ");
return;
}الآن لو أدخل المستخدم قيمة عشرية ( استخدم الفاصلة ) فإن البرنامج سيعترض برسالة خطأ .
وإن أردت تغيير نوع العدد فكل ما عليك تغيير تعريف المتغير :)
تحياتي
اشكرك على الاضافة اخي hfsh
double input = 0.0;
if(double.TryParse(textBox1.Text, out input) == false)
MessageBox.Show("يجب إدخال قيمة صحيحة", "خطأ");private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
switch(e.KeyChar) {
case '0':
case '1':
case '2':
case '3':
case '4':
case '5':
case '6':
case '7':
case '8':
case '9':
case (char)8:
e.Handled = false;
break;
case '.':
if(textBox1.Text.Contains("."))
e.Handled = true;
break;
case '-':
if(textBox1.Text.Length > 0)
e.Handled = true;
break;
default:
e.Handled = true;
break;
}
}تم تعديل هذه المشاركة بواسطة Moudey في 20 يوليو 2008 في 00:43