19-10-18, 08:49 AM (آخر تعديل لهذه المشاركة : 19-10-18, 08:59 AM {2} بواسطة Hazem1.)
بسم الله الرحمن الرحيم
إخواني الكرام أود الاستفسار من حضراتكم، هل هناك طريقة مُعينة لعملية الرجوع خطوة سابقة عن إجراء مُعين، على سبيل المثال إذا تم حذف صف معين، فيتم الضغط على الزر واسترجاع الصف الذي تم حذفه؟ مع العلم أنني أعلم أن الكود المُستخدم في عملية الرجوع عن نص سابق هو الكود التالي، وجزاكم الله خيراً.
PHP كود :
TextBox1.Undo()
عن أبي هريرة - رضي الله عنه - قال: قال رسول الله - صلى الله عليه وسلم -: ((كلمتان خفيفتان على اللسان، ثقيلتان في الميزان، حبيبتان إلى الرحمن: سبحان الله وبحمده، سبحان الله العظيم))؛ متفق عليه.
عند استخدام الوضع المنفصل (DataSet) أعتقد أنه ستكون هناك فرصة للتراجع بطريقة معينة قبل التحديث الحقيقي في قاعدة البيانات
بصدق يا أخي rnmr لا أعلم كيف سيكون التراجع، على كل حال وجدت مقال يتحدث عن التراجع لعدة خطوات سابقة لكن تم توظيف الأكواد في أداة RichTextbox حاولت لوقت طويل التعديل في الأكواد حتى يتم التطبيق على صفوف الداتاجريدفيو لأقوم باستراجعها بعد الحذف لكن سُبحان الله لم تفلح المحاولة.
عن أبي هريرة - رضي الله عنه - قال: قال رسول الله - صلى الله عليه وسلم -: ((كلمتان خفيفتان على اللسان، ثقيلتان في الميزان، حبيبتان إلى الرحمن: سبحان الله وبحمده، سبحان الله العظيم))؛ متفق عليه.
تمت التجربة أخي الكريم rnmr ، لكن ظهرت هذه الأخطاء في الأكواد
عن أبي هريرة - رضي الله عنه - قال: قال رسول الله - صلى الله عليه وسلم -: ((كلمتان خفيفتان على اللسان، ثقيلتان في الميزان، حبيبتان إلى الرحمن: سبحان الله وبحمده، سبحان الله العظيم))؛ متفق عليه.
أما 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
عن أبي هريرة - رضي الله عنه - قال: قال رسول الله - صلى الله عليه وسلم -: ((كلمتان خفيفتان على اللسان، ثقيلتان في الميزان، حبيبتان إلى الرحمن: سبحان الله وبحمده، سبحان الله العظيم))؛ متفق عليه.
لكنه يعمل على ما تم تعديل محتى خلايا الداتاجريد يدوياً فقط.
قد لا يناسب مشروعك إن كانت المسألة فيها قاعدة بيانات،
لذلك قد تحتاج للرجوع بالأخذ بأول مشاركة لي بخصوص DataSet.
بصراحة لا أعرف كيف سيتم استخدام الDataSet بعملية الرجوع فإن كان لحضرتك مُشاركة أو هناك مقال أو موضوع بخصوص هذا الأمر فجزاك الله خيراً.
عن أبي هريرة - رضي الله عنه - قال: قال رسول الله - صلى الله عليه وسلم -: ((كلمتان خفيفتان على اللسان، ثقيلتان في الميزان، حبيبتان إلى الرحمن: سبحان الله وبحمده، سبحان الله العظيم))؛ متفق عليه.