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

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (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=27009)



كيفية الرجوع خطوة سابقة - Hazem1 - 19-10-18

بسم الله الرحمن الرحيم 

إخواني الكرام أود الاستفسار من حضراتكم، هل هناك طريقة مُعينة لعملية الرجوع خطوة سابقة عن إجراء مُعين، على سبيل المثال إذا تم حذف صف معين، فيتم الضغط على الزر واسترجاع الصف الذي تم حذفه؟ مع العلم أنني أعلم أن الكود المُستخدم في عملية الرجوع عن نص سابق هو الكود التالي، وجزاكم الله خيراً.
PHP كود :
TextBox1.Undo() 



RE: كيفية الرجوع خطوة سابقة - rnmr - 19-10-18

جرب هذا

عند استخدام الوضع المنفصل (DataSet) أعتقد أنه ستكون هناك فرصة للتراجع بطريقة معينة قبل التحديث الحقيقي في قاعدة البيانات


RE: كيفية الرجوع خطوة سابقة - Hazem1 - 19-10-18

(19-10-18, 08:59 AM)rnmr كتب : جرب هذا

عند استخدام الوضع المنفصل (DataSet) أعتقد أنه ستكون هناك فرصة للتراجع بطريقة معينة قبل التحديث الحقيقي في قاعدة البيانات

بصدق يا أخي rnmr لا أعلم كيف سيكون التراجع، على كل حال وجدت مقال يتحدث عن التراجع لعدة خطوات سابقة لكن تم توظيف الأكواد في أداة RichTextbox  حاولت لوقت طويل التعديل في الأكواد حتى يتم التطبيق على صفوف الداتاجريدفيو لأقوم باستراجعها بعد الحذف لكن سُبحان الله لم تفلح المحاولة.

هذا المقال أخي الكريم 

Multiple undo and redo in richtextbox - VB.NET


RE: كيفية الرجوع خطوة سابقة - rnmr - 19-10-18

جرب هذا

كيفية عمل تراجع عن اخر عملية ادخال بيانات داخل الداتاجريد


RE: كيفية الرجوع خطوة سابقة - Hazem1 - 20-10-18

(19-10-18, 06:09 PM)rnmr كتب : جرب هذا

كيفية عمل تراجع عن اخر عملية ادخال بيانات داخل الداتاجريد

تمت التجربة أخي الكريم rnmr ، لكن ظهرت هذه الأخطاء في الأكواد


RE: كيفية الرجوع خطوة سابقة - rnmr - 20-10-18

جرب هذا

احذف Button27_Click فليس من متطلبات التراجع Undo

أما Button20_Click فيبدو أنه يوجد تكرار لنفس الاسم لديك


RE: كيفية الرجوع خطوة سابقة - Hazem1 - 20-10-18

(20-10-18, 12:37 AM)rnmr كتب : جرب هذا

احذف Button27_Click فليس من متطلبات التراجع Undo

أما Button20_Click فيبدو أنه يوجد تكرار لنفس الاسم لديك

حذفته أخي الكريم rnmr ، لايوجد أخطاء في الكود لكن سُبحان الله لا يعمل عند الضغط على الزر، هذا الكود بعد التصحيح :
كود :
Public Class Form2
#Region " DataGridViewUndoStack "
   Dim DataGridViewUndoStack As New Stack(Of undo)
   Structure undo
       Dim rows As Integer ' عدد الأسطر
       Dim row As Integer  ' رقم السطر
       Dim col As Integer  ' رقم العمود
       Dim val As Object   ' قيمة الخلية
   End Structure
   Private Sub DataGridView1_CellBeginEdit(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellCancelEventArgs) Handles DataGridView1.CellBeginEdit
       Dim o As New undo
       o.rows = DataGridView1.Rows.Count
       o.row = DataGridView1.CurrentCell.RowIndex
       o.col = DataGridView1.CurrentCell.ColumnIndex
       o.val = DataGridView1.CurrentCell.Value
       DataGridViewUndoStack.Push(o)
   End Sub
   Private Sub DataGridViewDoUndo() ' التراجع
       If DataGridViewUndoStack.Count > 0 Then
           Dim o As New undo
           o = DataGridViewUndoStack.Pop
           Me.DataGridView1.Rows(o.row).Cells(o.col).Value = o.val
           Me.DataGridView1.CurrentCell = DataGridView1.Rows(o.row).Cells(o.col)
           Do While DataGridView1.Rows.Count > o.rows
               DataGridView1.Rows.RemoveAt(If(DataGridView1.AllowUserToAddRows, DataGridView1.Rows.Count - 2, DataGridView1.Rows.Count - 1))
           Loop
       End If
   End Sub
   Private Sub Button29_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button29.Click
       DataGridViewDoUndo()
   End Sub
#End Region

   



RE: كيفية الرجوع خطوة سابقة - rnmr - 20-10-18

جرب هذا

الكود يعمل،

لكنه يعمل على ما تم تعديل محتى خلايا الداتاجريد يدوياً فقط.

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


RE: كيفية الرجوع خطوة سابقة - Hazem1 - 20-10-18

(20-10-18, 01:20 AM)rnmr كتب : جرب هذا

الكود يعمل،

لكنه يعمل على ما تم تعديل محتى خلايا الداتاجريد يدوياً فقط.

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

بصراحة لا أعرف كيف سيتم استخدام الDataSet بعملية الرجوع فإن كان لحضرتك مُشاركة أو هناك مقال أو موضوع بخصوص هذا الأمر فجزاك الله خيراً.