منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
موقع المؤشر بعد الحذف - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182)
+--- قسم : قسم اسئلة VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=183)
+--- الموضوع : موقع المؤشر بعد الحذف (/showthread.php?tid=19500)



موقع المؤشر بعد الحذف - abdulla2 - 03-03-17

ايها الأحبة الكرام  هذا الكود
يقوم بعملية الحذف بصورة جيدة وليس هناك اي مشكلة
ولكن بعد الحذف يذهب المؤشر إلى أعلى ..!!!
فكيف اجعل المؤشر ينتقل الى السجل الذي يليه اي بقى مكانه

مع التنبيه جربت المشاركات بخصوص الموضوع لم تضبط معاي

هذا هو الكود ..

    'Try

       '    'لتأكيد عملية الحذف
       '    If MsgBox("هل تريد تأكيد عملية الحذف", MsgBoxStyle.YesNo, "تأكيد الحذف") = DialogResult.Yes Then

       '        sqlstr = "Delete From TB_Notices Where ID_Format = @ID_Format"
       '        cmd = New OleDbCommand(sqlstr, conn)
       '        cmd.Parameters.Add("@ID_Format", OleDbType.VarChar).Value = DGVAlert.CurrentRow.Cells(1).Value
       '        conn.Open()
       '        cmd.ExecuteNonQuery()

       '        MsgBox("تمت عملية الحذف بنجاح", MsgBoxStyle.Information, "الحذف")

       '        'سب تحميل البيانات
       '        FillDGVAlert()


       '    End If

       'Catch ex As Exception
       '    MsgBox("لا توجد  تنبيهات معلقة", MsgBoxStyle.Information, "حذف تنبيه")
       'Finally
       '    conn.Close()
       'End Try


RE: موقع المؤشر بعد الحذف - مساعدة - 03-03-17

السلام عليكم

قم بالاحتفاظ برقم المؤشر قبل ايتمام العملية كالكود التالي
كود :
Dim CurrentRowIndex As Integer = DataGridView1.CurrentRow.Index

وبعد اتمام العملية
وتعبئة الجدول بالبيانات
قم بتحريك المؤشر الى الرقم المحتفظ به سابقا كالكود التالي
كود :
DataGridView1.Rows(CurrentRowIndex).Selected = True
DataGridView1.FirstDisplayedScrollingRowIndex = CurrentRowIndex



RE: موقع المؤشر بعد الحذف - abdulla2 - 04-03-17

جربت كما تفضلت لكن لازال المؤشر يذهب لأعلى ..
وهذا الكود بعد التعديل ...

Try
     Dim CurrentRowIndex As Integer = DGV_Users.CurrentRow.Index
      '    'لتأكيد عملية الحذف
      '    If MsgBox("هل تريد تأكيد عملية الحذف", MsgBoxStyle.YesNo, "تأكيد الحذف") = DialogResult.Yes Then

      '        sqlstr = "Delete From TB_Notices Where ID_Format = @ID_Format"
      '        cmd = New OleDbCommand(sqlstr, conn)
      '        cmd.Parameters.Add("@ID_Format", OleDbType.VarChar).Value = DGVAlert.CurrentRow.Cells(1).Value
      '        conn.Open()
      '        cmd.ExecuteNonQuery()

      '        MsgBox("تمت عملية الحذف بنجاح", MsgBoxStyle.Information, "الحذف")

      '        'سب تحميل البيانات
      '        FillDGVAlert()
     
      DGV_Users.Rows(CurrentRowIndex).Selected = True
      DGV_Users.FirstDisplayedScrollingRowIndex = CurrentRowIndex

      '    End If

      'Catch ex As Exception
      '    MsgBox("لا توجد  تنبيهات معلقة", MsgBoxStyle.Information, "حذف تنبيه")
      'Finally
      '    conn.Close()
      'End Try


RE: موقع المؤشر بعد الحذف - مساعدة - 08-03-17

اتضح أنك تستخدم جدولين DGVAlert وDGV_Users

وأنت احتفظت برقم المؤشر الخاص ب DGV_Users
ولكنك في السطر DGVAlert.CurrentRow.Cells(1).Value أنت تعاملت بالحذف مع DGVAlert وليس DGV_Users

ارجو أن يكون الخطأ اتضح لك

تفضل التعديل
كود :
Try
   Dim CurrentRowIndex As Integer = DGVAlert.CurrentRow.Index
   'لتأكيد عملية الحذف
   If MsgBox("هل تريد تأكيد عملية الحذف", MsgBoxStyle.YesNo, "تأكيد الحذف") = DialogResult.Yes Then

       sqlstr = "Delete From TB_Notices Where ID_Format = @ID_Format"
       cmd = New OleDbCommand(sqlstr, conn)
       cmd.Parameters.Add("@ID_Format", OleDbType.VarChar).Value = DGVAlert.CurrentRow.Cells(1).Value
       conn.Open()
       cmd.ExecuteNonQuery()

       MsgBox("تمت عملية الحذف بنجاح", MsgBoxStyle.Information, "الحذف")

       'سب تحميل البيانات
       FillDGVAlert()

       DGVAlert.Rows(CurrentRowIndex).Selected = True
       DGVAlert.FirstDisplayedScrollingRowIndex = CurrentRowIndex

   End If

Catch ex As Exception
   MsgBox("لا توجد  تنبيهات معلقة", MsgBoxStyle.Information, "حذف تنبيه")
Finally
   conn.Close()
End Try



RE: موقع المؤشر بعد الحذف - abdulla2 - 08-03-17

اخي مساعدة شكرا لتجاوبك ولكن لا زال المؤشر يذهب للاعلى
لهذا عملت مشروع صغير لتنظر فيه

وشكرا لك ..


RE: موقع المؤشر بعد الحذف - abdulla2 - 08-03-17

بعد تعبيئة قاعدة البيانات بأسماء ..
وأعدت التجربة عمل الكود بأحسم مايرام ..
شكرا لك أخي مساعدة الذي لا تتردد بأي مساعدة ..
شكرا لك كثيرا ..