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

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

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

السلام عليكم ورحمة الله وبركاته

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

الكود


{

if (!System.Text.RegularExpressions.Regex.IsMatch(e.KeyChar.ToString(), "\\d+"))
e.Handled = true;
}
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)

تم تعديل هذه المشاركة بواسطة biggnerCsharp في 6 أبريل 2011 في 22:48

#2

هذا الكود يقوم بتناول الحدث أو الـevent الخاص بالتكستبوكس textBox1 المدعو KeyPress، وهو يحدث عند ضعط أي زر. أي أنه عندما يتم ضغط أي زر على هذا التكستبوكس سيتم تنفيذ الكود الموجود داخل الدالة.

private void textBox1_KeyPress(object sender, KeyPressEventArgs e)

sender هنا هي الكائن الذي حصل فيه الـevent. أي في حالتنا textBox1

e هي مجموعة من الخواص التي يحتويها الـevent

            if (!System.Text.RegularExpressions.Regex.IsMatch(e.KeyChar.ToString(), "\\d+"))

هنا جملة شرطية تفحص محتوى e.KeyChar الذي يحتوي على الحرف الذي تم ضغطه. يتم الفحص عن طريق ما يدعى بـRegular Expression أو RegEx للاختصار وهي لغة منفصلة تستخدم للبحث داخل النصوص. في هذه الجملة IsMatch هي دالة تعيد القيمة true إذا كان محتوى e.KeyChar (بعد تحويله إلى string) يطابق \\d+ والذي يعني بلغة RegEx: أي سلسلة من الأرقام. أي باختصار أن هذه الجملة الشرطية تنفذ ما بداخلها فقط في حالة كان الزر المضغوط رقماً.

                e.Handled = true;

هذا السطر يخبر الحاسب بأن عملية مناولة الـevent تمت بنجاح وأن يمكن تمرير عملية الضغط (وبالتالي إظهار الرقم في التكستبوكس). عدم تنفيذه (أي عندما تفشل الجملة الشرطية) يعني عدم نجاح العملية وعدم إظهار قيمة الزر في التكستبوكس.

#3

جزاك الله عنى خير الجزاء ليس من الصعب استخدام الكود ولكن الاصعب هو فهمة حتى استخدمة وانا مرتاح ولكن نعم الشرح انا بالفعل لا استطيع ان اعبر عن شكرى بالكلمات ولكن اترك على الله شكرك

#4

استخدم الاداة maskedTextBox هذا افضل واسرع

#5

السلام عليكم ورحمه الله وبركاته

انا اوافق كريم سوفت الرأي بس مش لأنها اسرع بس لأنها صممت لهذا الغرض .. انك تضع قناع للنص يعني كودك هو الاساس فبالتالي يمكنك تطوير اداه مشابه لل MaskedTextBox

.:: Wish to become better and better ::.

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

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

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

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

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