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

كيف اتنقل بالانتر داخل صفوف الداتا جريد فيو?

مغلق
بدأه ميدو666 في 15 أبريل 2007 · 9 رد · 4,307 مشاهدة · في ADO.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

الاخوة الافاضل بالمنتدي

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

حيث انني عندما اضغط مفتاح الانتر ينزيل الي اسفل وانا اريد بعد الضغط علي الانتر ينتقل الي الخانة التالية

في نفس الصف

فهل من معين جزاكم الله خيراً

#2

السلام عليكم أخي الكريم :

المفتاح ( Tab ) سيحل مشكلتك بإذن الله ... فإما :

1- بضغط ( Tab ) سينتقل التركيز إلى الخلية التالية في DataGridView وهو المطلوب .

2- إذا أردت استخدام المفتاح ( Enter ) للقيام بذلك , فعليك الدخول إلى حدث KeyDown للأداة DataGridView وفعل مايلي :

* إلغاء فعل ( Enter ) القديم < حيث كان ينتقل عموديا > وجعل فعل ( Tab ) هو المسيطر عند ضغط ( Enter )

وهن أجل ذلك نستخدم الوظيفة SuppressKeyPress .

* إرسال فعل الضغط على ( Tab ) إلى حدث الضغط على ( Enter ) , فيصبح لدينا ما يلي :

	Private Sub dgv_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles dgv.KeyDown

		If e.KeyCode = Keys.Enter Then
			e.SuppressKeyPress = True
			SendKeys.Send("{Tab}")
		End If

	End Sub

وهو المطلوب .

أرجو أن يكون هذا هو المقصود ... وفقكم الله لما يحب ويرضى في الدنيا والآخرة .

نرجو الدعاء لنا بالتوفيق في الدنيا والآخرة ...

1
#3

الاخ الحبيب ابو همام

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

في البدايه وفقك الله لما تحب وترضي وبالتوفيق في الدنيا والاخرة وجزاك الله خيراً

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

يعني لو اردت ان ادخل بيانات جديدة فعندما اضغط انتر لاينتقل الي الخلية التالية افقيا

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

وجزاك الله خيراً

مرفق المثال

DataGridENTER.rar

#4

أسف

في البدايه وفقك الله لمايحب ويرضي

#5

السلام عليكم أخي الكريم :

بعد تحليل حركة انتقال الخلايا , هذا ما استطعت أن أخرج به :

	Private Sub DetailsDataGridView_CellEndEdit(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DetailsDataGridView.CellEndEdit

		SendKeys.Send("{Enter}")
		SendKeys.Send("{esc}")

	End Sub

	Private Sub DetailsDataGridView_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles DetailsDataGridView.KeyDown

		If e.KeyCode = Keys.Enter Then
			If Me.DetailsDataGridView.IsCurrentCellInEditMode Then
				Me.DetailsDataGridView.CancelEdit()
			Else
				e.SuppressKeyPress = True
				SendKeys.Send("{Tab}")
			End If
		End If

	End Sub

أرجو أن يفي هذا بالغرض , سامحونا إن كان هناك أي خلل .... وفقكم الله .

1
#6

شكر جزيلا ابو همام

الكود شغال كويس

وفقكم الله لما يحب ويرضى في الدنيا والآخرة

اللهم وفقه في الدنيا والاخرة

وجزاك الله خيرا

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

#7

الأخوة الافاضل

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

فهل يوجد تعديل لهذا الكود لكي يضيف صف جديد في الداتا جريد ومن ثم ادخال البيانات وحفظها

وجزاكم الله خيراً

#8

السلام عليكم :

أخي الكريم جرب أن تحذف السطر :

Me.DetailsDataGridView.CancelEdit()

من الكود السابق.

ولا تنسى أن تجعل أداة الـ DataGridView قابلة للتعديل و الإضافة .

وفقكم الله .

#9

السلام عليكم

استخدم السلوك ProcessCmdKey الذي يقوم بنقل المؤشر وفقاً للضغط على الزر الذي تعينه انت.

هذا الكود وهو عبارة عن قالب برمجي مكتبي او ما يعرف بـ Class Library فاي رسالة ترسل لنظام التشغيل كالضغط على الازرار

يستطيع هذا القالب ان يتضمنها.

على سبيل المثال

Protected Overrides Function ProcessCmdKey _
	  (ByRef msg As System.Windows.Forms.Message, _
	  ByVal keyData As System.Windows.Forms.Keys) As Boolean
		Try
			If msg.WParam.ToInt32() = CInt(Keys.Enter) Then
				SendKeys.Send("{Tab}")
				Return True
			End If
			Return MyBase.ProcessCmdKey(msg, keyData)
		Catch ex As Exception
			MsgBox(ex.Message)
		End Try
	End Function

شاهد المرفق في الاسفل, بالتوفيق إن شاء الله.

DataGridENTER.rar

1

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

#10

الاخوة الافاضل جميعاً

واخص بالذكر:

أ/ أبو همام

واستاذنا ومشرف المنتدي الاستاذ/ الغملاسي

شكراً جزيلا لكم جميعاً

وجزاكم الله خيراً ووفققك الله

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

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

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…