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

سوال عن mask

مغلق
بدأه ابو خالد111 في 28 أبريل 2005 · 5 رد · 828 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

اخوتي في الله

عندي قاعدة بيانات على access ويوجد بها حقول عن التاريخ

واستخدمت في الفورم لحقول التاريخ اداة Mask السوال المهم

كيف اضيف من خلال هذا الكائن الى قاعدة البيانات التاريخ علماً انه من بين مربعات نص اخرى وانواع بيانات اخرى وانا استخدم لغة VB.Net ارجو الاجابة ولكم مني جزيل الشكر والعرفان

اخوكم ابو خالد 111

تم تعديل هذه المشاركة بواسطة ابو خالد111 في 28 أبريل 2005 في 02:15

#2

انا ايضا اضم مشاركتي لمشاركة الاخ ابو خالد

مثال

اريد ان ادخل تنسيق لمربع نص به رقم الهاتف بهذه الطريقه(02/666666)

طريقة عمل التنسيق ان شاء الله سهله

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

نرجو المساعده وجزاكم الله خير

Logo_460_60.gif
#3

يعني ما احد يبي يجاوبني

يعني سوالي صعب لها الدرجه

الله واكبر يازمن وين الناس الكبار وين اهل النخوة

تراني منتظر على احر من الجمر

#4

السلام عليكم

أبو خالد بارك الله فيك لو تحذُ حذو فهمي و تفهمنا الطلب بالضبط مع مثال توضيحي

بالنسبة للأخ فهمي يلزمنا في هذه الحالة إنشاء عنصر جديد من نوع TextBox اي Custom Control

ثم نكتب فيه بعض الأحداث و الشروط مع قليل فقط من Regex بهذا الشكل

Imports System.Text.RegularExpressions
Public Class Masker
    Inherits TextBox

    Private _Mask As String
    Const PhoneMask As String = "^\d$"
    Private Function ValidateOnlyNumbers(ByVal CaseNumber As String) As Boolean
        Try
            Dim rx As New Regex(PhoneMask)
            Return rx.IsMatch(CaseNumber)
        Catch ex As Exception

        End Try
        Return True
    End Function
    Public Property Mask() As String
        Get
            Return _Mask
        End Get
        Set(ByVal Value As String)
            _Mask = Value
            Me.Text = ""
        End Set
    End Property

    Protected Overrides Sub OnKeyPress(ByVal e As KeyPressEventArgs)
        If Mask = "" Then Exit Sub
        'If BackSpace Or Delete Keys Presses 
        'Do Nothing
        If e.KeyChar = Microsoft.VisualBasic.ChrW(8) Or e.KeyChar = _
        Microsoft.VisualBasic.ChrW(12) Then
            Exit Sub
        End If
        ' Suppress the typed character.
        'Prevent Typing
        e.Handled = True
        ' Loop through the mask, adding fixed characters as needed.
        ' If the next allowed character matches what the user has
        ' typed in (a number), that is added to the end.
        Dim i As Integer
        Dim NewText As String = Me.Text
        For i = Me.SelectionStart To _Mask.Length - 1
            Select Case _Mask.Chars(i)
                Case "#"
                    ' Allow the keypress as long as it is a number.
                    If Char.IsDigit(e.KeyChar) = True Then
                        If ValidateOnlyNumbers(CInt(e.KeyChar.ToString)) Then
                            NewText &= e.KeyChar.ToString
                            Exit For
                        Else
                            Exit Sub
                        End If
                    Else
                        ' Invalid entry; exit and don't change the text.
                        Exit For
                    End If
                Case Else
                    ' Insert the mask character.
                    NewText = NewText & _Mask.Chars(i)
            End Select
        Next
        Me.Text = NewText
        Me.SelectionStart = Me.Text.Length
    End Sub

End Class

بالنسبة للملف المرفق

1 - قم بإضافة الـ TextMaskSolution.dll من خلال الـ ToolBox سيظهر لك وجه بجانبة الكلمة Masker

إضفه على النموذج Form لديك , وهو عبارة عن TextBox ستجد فيه الخاصية Mask أكتب فيها مثلاً التالية

(##\######) سيكون الناتج كالتالي (24\345344) هذه الخانة النصية تتطلب العلامة # كرقم ثم ضع شكل الماسك لديك

وهذه الخانة لا تقبل الإ القيم الرقمية فقط .

السلام عليكم

TextMaskSolution.zip

تم تعديل هذه المشاركة بواسطة الغملاسي في 29 أبريل 2005 في 04:27

في المثال يتضح المقال

#5

اخي الغملاسي

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

اخي عندي كائن من نوع Masker على النموذج مثله مثل textbox واريد من خلال هذه الاداة ادخال التاريخ الى قاعدة البيانات علماً اني وضع امام الخاصية MASK .

9999/99/99

حاولت ولكن دون جدوى عملت عسى ان يكون سؤالي واضح

وتكون اجابتك بشكل مفصل وارجو عندما تكتب توضح لي مكان كتابة الكود ولك جزيل الشكر

#6

السلام عليكم

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

أي فقط أرقام بينهم فاصلة /

فإن الملف المرفق في الجواب الأول يؤدي الغرض تماماً

فقط في الخاصية mask لـ TextBox أكتب فيها التالي

##/##/####

على كل حال هذا هو المشروع ستجد Custom Control باسم masker تأمل في النصوص البرمجية المكتوبة فيه

وهي إن شاء الله سهله ويسيرة فقط بعض التجارب تصل إلى الفكرة البسيطة . بالتوفيق

MaskedTB.zip

في المثال يتضح المقال

هذا الموضوع مغلق.

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