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

التكس بوكس

مغلق
بدأه صاحبة السمو في 6 ديسمبر 2006 · 6 رد · 1,013 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

اخواني السلام عليكم

الموضوع باختصار

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

سوالى كيف امنع المستخدم من ادخال اي شي غير الارقام

يعني ما يدخل حروف ولا فراغ speace

س ارقام

اتمني اللي يعرف الجواب يفيدني علما اني جربت بالكودين التالين بس للاسف ماضبط معي ما بعرف ليش

Private Sub Textbox1_KeyPress(ByVal KeyAscii As Integer)
		Dim str As String
		str = "0123456789" & vbBack
		If InStr(str, Chr(KeyAscii)) = 0 Then
			KeyAscii = 0
		End If
	End Sub

نهائا ما نفع معي

اما الكود الاخر فهو

Dim ch As Char
		ch = e.KeyChar

		If Asc(ch) = 13 Then
			SendKeys.Send("{TAB}")
			Exit Sub
		End If
		If ch.IsDigit(ch) = True Or ch.GetHashCode = 524296 Then
			e.Handled = False
		Else
			e.Handled = True
		End If

ودا بصراحه ما عرفت فين اكتبه لانو كل ما اكتبه يعطيني غلط

ارجو المساعده واسفه على الاطاله

تم تعديل هذه المشاركة بواسطة الغملاسي في 6 ديسمبر 2006 في 10:06

1145392391.gif
#2

السلام عليكم

حياك الله اختي الكريمة

بالنسبة لتحقق من سلامة البيانات المدخلة عبر الخانة النصية أو ما يعرف بـ Data Validation

سيكون عبر التعابير النظامية Regular Expression وهي عبارة عن معايير ( رموز ) توظف لنا اي متطلب

بشكل مختصر و محكم إليكي ذلك.

Imports System.Text.RegularExpressions

	Const NumberRX As String = "^\d+$" 


  'The  Function Check if the Field contents Numbers No Letters or symbols
	'<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
	Public Function ValidateNumber(ByVal TheNumber As String) As Boolean
		Try
			Dim rx As New Regex(NumberRX)
			Return rx.IsMatch(Trim(TheNumber))
		Catch ex As FormatException
			Throw ex
		Catch ex As Exception
			Throw ex
		End Try
	End Function

ثم في حدث التحققية للخانة النصية سيكون الاتي :

 Private Sub TextBox1_Validating(ByVal sender As Object, _
	ByVal e As System.ComponentModel.CancelEventArgs) Handles TextBox1.Validating

		If ValidateNumber(Me.TextBox1.Text) Then
			MsgBox("Numeric Data has been accepted.")
			e.Cancel = False
		Else
			MsgBox("Data Error, Should be a number")
			e.Cancel = True
		End If
	End Sub

بالنسبة للأكود التي عرضتيها فهي بقايا أطلال VB 6 .

بالتوفيق إن شاء الله يا اختي الكريمة.

السلام عليكم.

تم تعديل هذه المشاركة بواسطة الغملاسي في 6 ديسمبر 2006 في 10:25

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

#3

السلام عليكم

يمكنك استخدام الكود

 If Not (Char.IsDigit(e.KeyChar) Or Char.IsControl(e.KeyChar)) Then
			e.Handled = True
		End If

تم تعديل هذه المشاركة بواسطة moaita في 6 ديسمبر 2006 في 10:32

برمجة - قواعد بيانات
http://www.pmpsoft.com

#4

في حدث KeyPress للTextBox ضع الكود التالي

 Dim ch As Char
			ch = e.KeyChar
			If Char.IsDigit(ch) = True  Then
				e.Handled = False
			Else
				e.Handled = True
			End If
#5

الأخ الغملاسي ممكن تشرح الكود؟؟

تبعك

اقتباس
Imports System.Text.RegularExpressions

Const NumberRX As String = "^\d+$"

'The Function Check if the Field contents Numbers No Letters or symbols

'<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

Public Function ValidateNumber(ByVal TheNumber As String) As Boolean

Try

Dim rx As New Regex(NumberRX)

Return rx.IsMatch(Trim(TheNumber))

Catch ex As FormatException

Throw ex

Catch ex As Exception

Throw ex

End Try

End Function

وارجو قراءة موضوعي التالي

/index.php?showtopic=113387

تم تعديل هذه المشاركة بواسطة Romantic_touch في 6 ديسمبر 2006 في 10:59

<span style='color:green'>سؤل ابن عباس عن علمه كيف جمعه فقال :( أوتيت لسانا سؤولا وقلبا عقولا)</span>

#6

الاخ المشرف

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

على العموم الحمد لله حصلت الحل وسوف اضعه للفائده العامه

وهو كتابة التالى في حدث KeyPress

Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
		Dim ch As Char
		ch = e.KeyChar

		If Asc(ch) = 13 Then
			SendKeys.Send("{TAB}")
			Exit Sub
		End If
		If ch.IsDigit(ch) = True Or ch.GetHashCode = 524296 Then
			e.Handled = False
		Else
			e.Handled = True
		End If


	End Sub

وقد نجح معي على الفيجول دوت نت

والحمد لله انه لم يكون من بقايا اطلال من vb6

الاخ GoldenEagle

شكرا على ردك بالنسبة للكود هو شغال بس فيه عيب واح بس وهو عدم المسح يعني لو كتبت اي شي وحبيت تمسحه للتعديل ماتقدر

بس يضل معلومه جديده قد استخدمها مستقبلا يعطيك الف عافية عليه

الاخ moaita

شكرا على ردك ايضا

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

يعطيك الف عافية عليه

الاخRomantic_touch

موضوعك روعه بس اتمنى انك تشرحلنا اشوي عنه

ويعطيك الف عافية

1145392391.gif
#7

للاختصار استخدم الدالة Microsoft.VisualBasic.IsNumeric

كالتالي:

 
		Dim ch As Char
		ch = e.KeyChar
		If Not Microsoft.VisualBasic.IsNumeric(ch) Then
			If Asc(ch) = 13 Then
				SendKeys.Send("{TAB}")
				Exit Sub
			End If
			If ch.IsDigit(ch) = True Or ch.GetHashCode = 524296 Then
				e.Handled = False
			Else
				e.Handled = True
			End If

		End If

تم تعديل هذه المشاركة بواسطة Scoool في 6 ديسمبر 2006 في 14:26

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

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