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

كتابة ارقام فقط داخل الداتا جريد

بدأه bodaman22 في 23 أكتوبر 2008 · 3 رد · 783 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

كيف يتم كتابة ارقام فقط داخل عمود في الداتا جريد الخاصة بالفجوال بيسك دت نت 2005

انا عملت سيرش وجبت ميثال واشتغل معايا بس علي جميع الخلايا انا عايز الخلية الاولي فقط

دة الكود بالشرح

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

ورب مصائب قوم عند قوم منافع

وتبقى فى يدك وتقسم لغيرك

هذا فعلاً هو الحل

فى حدث

EditingControlShowing

1 - سننشأ عنصر من نوع TextBox

2- ثم نساويه بعنصر الخلية

3- ثم نرسل لك مقبض ( Handle ) لحدث Keypress

لنتحكم فى نوع البيانات المدخلة

حدث EditingControlShowing لعنصر DataGridView

Private Sub DataGridView_EditingControlShowing(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewEditingControlSho wingEventArgs) Handles DataGridView.EditingControlShowing

Dim TextEdit As TextBox = e.Control

RemoveHandler TextEdit.KeyPress, AddressOf TextBox_KeyPress_Number

AddHandler TextEdit.KeyPress, AddressOf TextBox_KeyPress_Number

End Sub

حدث KeyPress لكتابة أرقام فقط للعنصر المرسل منه المقبض ( Handle )

Public Sub TextBox_KeyPress_Number(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs)

Dim KeyAscii As Short = Asc(e.KeyChar)

If KeyAscii = 8 Then KeyAscii = 8 : Exit Sub

If KeyAscii <= 47 Or KeyAscii > 57 Then KeyAscii = 0

If KeyAscii = 0 Then

e.Handled = True

End If

End Sub

عايز حد يساوي التيكست الجديد بالخلية رقم 0 في الداتا جريد

وشكرا جزيلا

#2

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

لذلك شكرا لك لنشر العلم

<EMBED src=http://www.abdelghafar.com/images/banners/bm2.swf width=486 height=60 type=application/x-shockwave-flash EMBED < menu="false" loop="true" quality="high">

#3

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

ياجماعة الكود بيشتعل علي كل العواميد في الداتا جريد

ازاي يكون عمود رقم واحد فقط

#4

السلام عليكم

جميل جدا هذا الكود

وفكرت في فكرة بسيطة لطلبكم وهو تنفيذ الكود اللي بداخل حدث ال KeyPress بشرط معين (وهو رقم العمود المطلوب كتابة ارقام به)

اولا قوموا بتعريف متغير عام على مستوى الكلاس

Dim columnIndex As Integer

ثم في حدث الEditingControlShowing للجردة قوموا بتحدي رقم العمود اللي اليوزر داس عليه هكذا

columnIndex = DataGridView1.CurrentCell.ColumnIndex

وباقي الكود كما هو في هذا الحدث يعني الكود بالكامل في الحدث هايكون هكذا

 Private Sub DataGridView1_EditingControlShowing(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewEditingControlShowingEventArgs) Handles DataGridView1.EditingControlShowing
		columnIndex = DataGridView1.CurrentCell.ColumnIndex
		Dim TextEdit As TextBox = e.Control
		RemoveHandler TextEdit.KeyPress, AddressOf TextBox1_KeyPress
		AddHandler TextEdit.KeyPress, AddressOf TextBox1_KeyPress
	End Sub

اما في حدث الKeyPress للتيكست قوموا بفحص انهي عمود المستخدم اختاره هكذا

 Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
		Select Case columnIndex
			Case 0
				Dim KeyAscii As Short = Asc(e.KeyChar)
				If KeyAscii = 8 Then KeyAscii = 8 : Exit Sub
				If KeyAscii <= 47 Or KeyAscii > 57 Then KeyAscii = 0
				If KeyAscii = 0 Then
					e.Handled = True
				End If

		End Select
	End Sub

وبس

وبالتوفيق ...

تم تعديل هذه المشاركة بواسطة MohamedAliSalim في 27 أكتوبر 2008 في 09:32

Mohamed Ali Salim

0.1..0...4....7.....6......2.......7........4.........8

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