المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : المدخل إلى فيجوال بيسيك 2005 مثال 7



كبريـ انثى ـاء
26 Sep 2009, 04:54 AM
بسم الله الرحمن الرحيم
Masked TextBox and Text Valdation

سنتعرف اليوم على Masked TextBox و طرق تخصيص مربع النص TextBox وتحديد إدخالات معينة فى TextBox وكذلك المنع والسماح لعدد معين من الحروف والرموز والصيغ داخل مربع النص TextBox
أولا: MaskedTextBox
-نقوم بعمل مشروع جديد ثم نقوم بإدراج MaskedTextBox من خلال ToolBox



http://img403.imageshack.us/img403/1733/81623194cg8.jpg



كليك يمين بالماوس على MaskedTextBox ثم قم باختيار SetMask يظهر لك الان نافذة Input Mask ويوجد بها قائمة بأنواع الماسكات الممكن استخدامها داخل MaskedTextBox ويمكن تجربة اختيار أحد الأنواع وتجربة كتابة النص بداخلة لمشاهدة النتيجة



http://img145.imageshack.us/img145/3683/55680853lr7.jpg



ثانيا :Text Validation
إنشاء حدث الكتابة فى مربع النص
لا بد لنا من فهم معنى حدث (Event)
هى كلمة مشتقة من الحدوث ومعناها فى موضوعنا هو تأخير ظهور الوظيفة التى قمنا بإنشائها إلى أن يقع أمر ما
-KeyPress
وهو من خلال اسمة يوضح وظيفتة الضغط على زر
نقوم بفتح مشروع جديد يحتوى على 12 مربع نص TextBox و9 عناوين Label ويمكن وضعها كما بالشكل الاتى



http://img410.imageshack.us/img410/3716/49685125zf6.jpg



1-منع كتابة زر معبن داخل مربع النص TextBox1
قم بكتابة الكود التالى


كود:

Private Sub TextEV1_KeyPress(ByVal sender As Object, _ByVal e As KeyPressEventArgs) Handles TextBox1.KeyPressIf e.KeyChar = CChar("r") Then e.Handled = TrueEnd Sub

وبالنظر إلى الكود جيدا نجد أن الجزء الفعال فى الكود هو

كود:

If e.KeyChar = CChar("r") Then e.Handled = True


والمعنى عند كتابة الرمز r فإن المنع =حقيقى يعنى قم بمنع ذلك
و TextEV هذة تسمي اختيارية ممكن التسمية TextEV1 و TextEV2 إلخ أو أى تسمية
لوحة المفاتيح مقسمة إلى ثلاثة أجزاء (أرقام و حروف و رموز) كل الأمثلة التالية تقوم بمنع الرموز تلقائيا
2- منع الأرقام والسماح للحروف بدلالة IsNumber فى TextBox2
كود:

Private Sub TextEV2_KeyPress(ByVal sender As Object, _ByVal e As KeyPressEventArgs) Handles TextBox2.KeyPressIf Char.IsNumber(e.KeyChar) Then e.Handled = TrueEnd Sub

لو كان المكتوب رقما قم بمنعة
3- السماح للإرقام ومنع الحروف بدلالة IsNumber فى TextBox3

كود:

Private Sub TextEV3_KeyPress(ByVal sender As Object, _ByVal e As KeyPressEventArgs) Handles TextBox3.KeyPressIf Char.IsNumber(e.KeyChar) = False Then e.Handled = TrueEnd Sub


إذا لم يكن المكتوب رقم ....الخ
4- منع الأرقام والسماح للحروف بدلالة IsLetter فى TextBox4
وهى تعطى نفس النتيجة الموجودة فى 2 ولكن باستخدام IsLetter
كود:

Private Sub TextEV4_KeyPress(ByVal sender As Object, _ByVal e As KeyPressEventArgs) Handles TextBox4.KeyPressIf Char.IsLetter(e.KeyChar) = False Then e.Handled = TrueEnd Sub


5- السماح للإرقام ومنع الحروف بدلالة IsLetter فى TextBox5
وهى نفس 3 ولكن بدلالة IsLetter
كود:

Private Sub TextEV5_KeyPress(ByVal sender As Object, _ByVal e As KeyPressEventArgs) Handles TextBox5.KeyPressIf Char.IsLetter(e.KeyChar) Then e.Handled = True


6-السماح لكل من الأرقام والحروف فى TextBox6
كود:

Private Sub TextEV6_KeyPress(ByVal sender As Object, _ByVal e As KeyPressEventArgs) Handles TextBox6.KeyPressIf Char.IsLetterOrDigit(e.KeyChar) = False Then e.Handled = TrueEnd Sub


وكما نرى فإن الرموز والإشارات والعلامات ممنوعة فى كل الأحوال وعلى ذلك نحتاج إلى طريقة للسماح بها سنفترض أن لدينا مربع نص يمكنة أن يحتوى على رقم أو رقم عشرى(.) أو – أو+
7-للسماح بإضافة علامة أو رمز فى TextBox7
إذا أردنا أن نسمح للأرقام العشرية فقط
كود:

Private Sub TextEV7_KeyPress(ByVal sender As Object, _ByVal e As KeyPressEventArgs) _Handles TextBox7.KeyPressIf Char.IsNumber(e.KeyChar) = False ThenIf e.KeyChar = CChar(".") Thene.Handled = FalseElsee.Handled = TrueEnd IfEnd IfEnd Sub


هنا قمنا بالسماح لرمز واحد فقط وهو العلامة العشرية فإذا أردنا السماح برموز أخرى فكما بالمثال التالى
كود:

Private Sub TextEV7_KeyPress(ByVal sender As Object, _ByVal e As KeyPressEventArgs) _Handles TextBox7.KeyPressIf Char.IsNumber(e.KeyChar) = False ThenIf e.KeyChar = CChar(".") Or e.KeyChar = CChar _("-") Or e.KeyChar = CChar("+") Thene.Handled = FalseElsee.Handled = TrueEnd IfEnd IfEnd Sub


وكما نرى قمنا بالسماح لعلامتى – و+
8-لتطبيق الحدث على مجموعة من مربعات النص TextBox8 و TextBox9 و TextBox10
أما إذا أردنا أن نقوم بتطبيق الحدث على مجموعة من مربعات النصوص دفعة واحدة فإليكم الكيفية
كود:

Private Sub TextEV8_KeyPress(ByVal sender As System.Object, _ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles _TextBox8.KeyPress, TextBox9.KeyPress, TextBox10.KeyPressIf Char.IsNumber(e.KeyChar) = False Then e.Handled = TrueEnd Sub


9- منع الحروف الصغيرة فىTextBox 11
كود:

Private Sub TextEV9_KeyPress(ByVal sender As Object, _ByVal e As KeyPressEventArgs) Handles TextBox11.KeyPressIf Char.IsLower(e.KeyChar) Then e.Handled = TrueEnd Sub


10- منع الحروف الكبيرة فى TextBox 12
كود:

Private Sub TextEV10_KeyPress(ByVal sender As Object, _ByVal e As KeyPressEventArgs) Handles TextBox12.KeyPressIf Char.IsLower(e.KeyChar) = False Then e.Handled = TrueEnd Sub