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

عدم ادخال اي اشي في الداتا غريد فيو غير الارقام

مغلق
بدأه صاحبة السمو في 13 يناير 2007 · 10 رد · 1,733 مشاهدة · في ADO.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

اخواني الاعزاء

عندي داتاغريد فيو

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

يعني لا يدخل حرف ولا حتى مسافه space

في الاعمده 1,2,3,4 فقط ارقام

الداتا غريد فيو حجمها الاصلي 5 اعمده منها اجباري اربعه بس ارقام

1145392391.gif
#2

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

-----------------------------

اولا : عليكي ان تعرفي المستخدم أن هذا العمود لا يقبل سوا أرقم وذلك عن طريق عمل format الى هذا العمود column واليكي هذا المثال

	 Dim dc As New DataGridViewTextBoxColumn
		With dc
			.HeaderText = "test"
			.ValueType = GetType(Decimal)
			.DefaultCellStyle.Format = "0.00"
		End With
		DataGridView1.Columns.Add(dc)

وخلال بحث في أحد المنتديات وجدت هذا الكود وقد قمت بأجراء بعض التغييرات عليه منها قنص الاحداث الخاصة ب textBox واستخدامها داخل dataGridView يعني الواحد يلف ويدور حتى يصل للغاية المرجوة من هيك شغلة ....

	Private Sub dataGridView1_EditingControlShowing(ByVal sender As Object, _
		ByVal e As DataGridViewEditingControlShowingEventArgs) _
		Handles DataGridView1.EditingControlShowing

		Dim txtEdit As TextBox = e.Control
		'remove any existing handler
		RemoveHandler txtEdit.KeyPress, AddressOf txtEdit_Keypress
		AddHandler txtEdit.KeyPress, AddressOf txtEdit_Keypress

	End Sub

	Private Sub txtEdit_Keypress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs)
		Console.WriteLine("KeyPress " & e.KeyChar.ToString())
		'Test for numeric value or backspace in first column
		If DataGridView1.CurrentCell.ColumnIndex = 0 Then
			If IsNumeric(e.KeyChar.ToString()) _
			Or e.KeyChar = ChrW(Keys.Back) _
			Or e.KeyChar = "." Then
				Console.WriteLine("KeyPress number")
				e.Handled = False 'if numeric display
			Else
				Console.WriteLine("Enter Numbers Only")
				e.Handled = True  'if non numeric don't display
			End If
		End If
	End Sub

والسلام خير ختاااام

رَبِّ لَا تَذَرْنِي فَرْداً وَأَنتَ خَيْرُ الْوَارِثِينَ

#3

للاسف اخوي لم ينجح معي

انظر اخوي الى الكود التالى

 Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
		Try
			If Not (Char.IsDigit(e.KeyChar) Or Char.IsControl(e.KeyChar)) Then
				e.Handled = True
			End If
			Dim ch As Char
			ch = e.KeyChar


			If ch.IsDigit(ch) = True Or ch.GetHashCode = 524296 Then
				e.Handled = False
			Else
				e.Handled = True
			End If

		Catch ex As OleDbException
			MessageBox.Show(ex.Message)
		End Try

	End Sub

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

المطلوب مثله بس على الاعمده رقم 2 , 3 , 4 في الداتا غريد فيو

1145392391.gif
#4

للاسف اخوني للحين مش محصله حل

اتمنى المساعده لمن يعرف الحل

1145392391.gif
#5

ارجو المساعده

ولو باعطاء فكره

1145392391.gif
#6

الاخ المبدع codehunter

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

اما بالنسبة للرابط

انا جربته من قبل

ولكن البرنامج نفسه غير نازل بالكامل

يعني بيعطيني انو في ملفات مفقوده فيه

فاتمنى انك تنزله تاني مره ولك جزيل الشكر

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

مشكوره اخوي اكتير

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

1145392391.gif
#7

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

-------------------

أختي الكريمة ....

اليكي الحل ولكن ما أريده منك هو شوية تركيز يعني سبيكي من الاكل هادي الساعة .... الله يرضى عنا وعنك ..

اولاً ما هي الاحداث : هي مؤشرات إلى أجراءات تقليدية يتم استدعائها لحظة وقوع حدث معين ...

أنتي تعرفي ... كيف يمكننا قنص الاحداث .. يعني تطويع حدث معين لاجل شغلة أخرى ...

بدك أكتر خدي عندك ..

لقنص الحدث نستخدم الكلمة المحجوزة withEvents او الكلمة المحجوزة AddHandler بما أنه نحن نريد تنفيذ اجراء لحظة اطلاق الحدث فلعلينا أن نستخدم الكلمة المجوزة addHandler

لنفترض أنه عندك textBox ولا تريدين أن تدخلي بها إلا أرقام فقط الحل بسيط وهو كالتالي

   Dim C As Char = e.KeyChar
			If Not (Char.IsDigit(C) Or Char.IsControl(C)) Then
				e.Handled = True
				My.Computer.Audio.PlaySystemSound(System.Media.SystemSounds.Beep)
			End If

طبعا نضع هادا الكود داخل الحدث KeyPress

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

 Private Sub txtTelNo_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtTelNo.KeyPress

		If DataGridView1.CurrentCell.ColumnIndex = 6 Then

			Dim C As Char = e.KeyChar
			If Not (Char.IsDigit(C) Or Char.IsControl(C)) Then
				e.Handled = True
				My.Computer.Audio.PlaySystemSound(System.Media.SystemSounds.Beep)
			End If

		End If

  End Sub

لاحظي جيدا ما قمت بكتابته في الاعلى وهو

If DataGridView1.CurrentCell.ColumnIndex = 6 Then

وهو العمود السادس (خلي بالك العد يبدأ من الصفر .... الحكاية مصفوفات )

والان كيف نجعل العموود Column داخل dataGridview لا يقبل الا أرقام

بكتب الأتي

 Private Sub DataGridView1_EditingControlShowing(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewEditingControlShowingEventArgs) Handles DataGridView1.EditingControlShowing

		If TypeOf e.Control Is TextBox Then
			Try
				RemoveHandler e.Control.KeyPress, AddressOf txtTelNo_KeyPress
			Catch ex As Exception

			End Try
			AddHandler e.Control.KeyPress, AddressOf txtTelNo_KeyPress

End If
	End Sub

المثال في المرفقات

العمود الذي لا يقبل الا ارقام هو العمود السلدس "الوحدات الموجودة بالمخزن"

وهلقيت ما بقى الا دعواكم

وبالتوفيق أن شاء الله

والسلام خير ختاااااااااااام

DataGridViewComboxbox.zip

تم تعديل هذه المشاركة بواسطة فلسطيننا في 22 يناير 2007 في 17:14

رَبِّ لَا تَذَرْنِي فَرْداً وَأَنتَ خَيْرُ الْوَارِثِينَ

#8

الأخت الفاضل ...

أرجوا ان يساعدك هذا المثال فى ما تريد انجازه

بإستخدام (MS-VB 6.0)

CustomDataGrid.zip ( 10.33k )

وشكراً

Eng. Usama El-Mokadem

Nothing is impossible, the word impossible itself says that: I M - Possible

#9

الاخ فلسطيننا مشكوره على ردك

بالفعل انتا انسان اكثر من رائع

انما فهمت من المثال المكتوب بالاعلى وطبقته واشتغل معي وفكرته اكثر من رائعه

بينما المرفق للاسف لم يعمل معي

الاخ المهندس يوسف

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

الاخ code hunter

مشكوره على ردك

وجاري التحميل لمثالك لتجربته

يعطيك العافية شباب والله ماقصرتوا

1145392391.gif
#10

اختي الكريمة ما المشكلة في المثال المرفق ...

ان كانت المشكلة تخص الاتصال فعليك الذهاااب إلى خصائص المشروع الحالي وعمل له Properties ومن ثم الذهاب إلى خانة الsettings الخاصة بأعدادات المشروع الحالي ومنها قومي بتحويل الأتصال الموجود إلى الاسم الموجود عندك

على كلا الحمد لله أنك فهمتي وجربت وعمل معك ...

رَبِّ لَا تَذَرْنِي فَرْداً وَأَنتَ خَيْرُ الْوَارِثِينَ

#11

اخي الكريم مشكوور على مرورك ...

بالنسبة للمثال أنا مجربووا عندي وشغال 100% وما بينته أنفا ... وهو نتيجة أختلاف إسم Server

وهلقيت قمت بتجربته ...

تأكد جيدا أنك حملته وقمت بتجربته ....

رَبِّ لَا تَذَرْنِي فَرْداً وَأَنتَ خَيْرُ الْوَارِثِينَ

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

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