منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : التنقل بين صفوف داتا قرايد فيو
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
اريدكيفية التنقل بين السجلات اعلى واسفل والاول والاخير مع داتا قرايد فيو بالكود  
وكذلك تبديل  مواقع الاسطر بمعني نقل السطر للاعلى او للاسفل  
الموضوع فقط على البيانات المعروضه داخل الاداة ولا علاقة له بالجدول  


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

التنقل بين السجلات اعلى واسفل والاول والاخير مع داتا قرايد فيو بالكود
PHP كود :
'الأول
Private Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click
    DGVMoveSelection(Me.DataGridView1, 0)
End Sub
'
السابق
Private Sub Button2_Click(ByVal sender As ObjectByVal e As EventArgsHandles Button2.Click
    DGVMoveSelection
(Me.DataGridView1Me.DataGridView1.CurrentRow.Index 1)
End Sub
'التالي
Private Sub Button3_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button3.Click
    DGVMoveSelection(Me.DataGridView1, Me.DataGridView1.CurrentRow.Index + 1)
End Sub
'
الأخير
Private Sub Button4_Click(ByVal sender As ObjectByVal e As EventArgsHandles Button4.Click
    DGVMoveSelection
(Me.DataGridView1Me.DataGridView1.Rows.Count 1)
End Sub
Sub DGVMoveSelection
(ByVal dgv As DataGridViewByVal rowindex As Integer)
 
   If rowindex 0 Then rowindex 0
    If rowindex 
> (dgv.Rows.Count 1Then rowindex = (dgv.Rows.Count 1)
 
   dgv.ClearSelection()
 
   dgv.CurrentCell dgv.Rows(rowindex).Cells(0)
 
   dgv.Rows(rowindex).Selected True
End Sub 


تبديل مواقع الاسطر
PHP كود :
Private Sub Button5_Click(ByVal sender As ObjectByVal e As EventArgsHandles Button5.Click
    
'تبديل بين السطر الثاني والسطر السادس
    DGVRowsSwap(Me.DataGridView1, 1, 5)
End Sub
Sub DGVRowsSwap(ByVal dgv As DataGridView, ByVal row1index As Integer, ByVal row2index As Integer)
    Dim r1 As DataGridViewRow = dgv.Rows(row1index)
    Dim r2 As DataGridViewRow = dgv.Rows(row2index)
    dgv.Rows.Remove(r1)
    dgv.Rows.Insert(row2index, r1)
    dgv.Rows.Remove(r2)
    dgv.Rows.Insert(row1index, r2)
End Sub 
هذة طريقة جميله 
إذا كنت تريد مثل هذة الأدوات
بدون أن تكتب سطر واحد
هذا كنترول اسمة bindingnavigator 

[attachment=16694]

فيديو للشرح : (أرجوا مشاهدة الفيديو)
الفيديو يشرح ربط البرنامج بقاعدة بيانات , لكن المهم ستجد الأداة التي إسمها bindingnavigator 


اشكركم من كل قلبي

استعملت هذا الكود لتحريك الصفوف وهو من مساعدتكم لي ( نقل الصف الى اسفل )
Private Sub Button11_Click_7(sender As Object, e As EventArgs) Handles Button11.Click
'تبديل بين السطر الثاني والسطر السادس
DGVRowsSwap(Me.DataGridView1, DataGridView1.CurrentRow.Index, DataGridView1.CurrentRow.Index + 1)

End Sub
Sub DGVRowsSwap(ByVal dgv As DataGridView, ByVal row1index As Integer, ByVal row2index As Integer)
Dim r1 As DataGridViewRow = dgv.Rows(row1index)
Dim r2 As DataGridViewRow = dgv.Rows(row2index)
dgv.Rows.Remove(r1)
dgv.Rows.Insert(row2index, r1)
dgv.Rows.Remove(r2)
dgv.Rows.Insert(row1index, r2)
End Sub
المشكلة الان اريد ان اعمل الانتقال للاعلي
استعملت نفس الشي وكتبت الكود هذا
DGVRowsSwap(Me.DataGridView1, DataGridView1.CurrentRow.Index, DataGridView1.CurrentRow.Index - 1)

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

ولن ينقل صف الى السطر المخصص للإضافة بيانات جديدة (الموجود في اسفل أسطر البيانات)

لن يعمل على داتاجريد مرتبط بالبيانات عن طريق DataSource
وأنت ذكرت في بداية موضوعه أن الداتاجريد لا علاقة له بالجدول، وقد فهمت من هذا أنه غير مرتبط
ما اقصدة اخي الفاضل ان تبديل الصفوف للاسفل شغال بينما للاعلى يعمل ولكن لا ينتقل المؤشر مع تبديل السطر