13-05-14, 06:21 PM
الصفحات : 1 2
16-05-14, 12:35 AM
-
منقول
طريقة عمل تراجع عن التعديلات التي تمت في خلايا DataGridView باستخدام المكدس Stack (ويمكن تعديلها ليتم تطبيقها على الأدوات الأخرى)
يحتوي المثال عل رز Button2 وفيه مجرد عرض محتوى المكدس الخاص بالتعديلات التي تمت (قد يفيد)
منقول
طريقة عمل تراجع عن التعديلات التي تمت في خلايا DataGridView باستخدام المكدس Stack (ويمكن تعديلها ليتم تطبيقها على الأدوات الأخرى)
يحتوي المثال عل رز Button2 وفيه مجرد عرض محتوى المكدس الخاص بالتعديلات التي تمت (قد يفيد)
كود :
Public Class Form1
#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
#End Region
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
DataGridViewDoUndo()
End Sub
' مجرد إضافة لعرض محتوى المكدس الخاص بالتعديلات التي تمت، قد يفيد
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim undoStacks As String = ""
For i = 0 To DataGridViewUndoStack.Count - 1
Dim o As New undo
o = DataGridViewUndoStack.ElementAt(i)
undoStacks &= i.ToString("000") & ": {" & o.row & ", " & o.col & "} " & o.val.ToString & vbNewLine
If i = 10 Then
undoStacks &= "يوجد أكثر" & vbNewLine & DataGridViewUndoStack.Count.ToString("000")
Exit For
End If
Next
MessageBox.Show(If(undoStacks = "", "لا توجد تعديلات", undoStacks), "UndoStack")
End Sub
End Class16-05-14, 04:36 AM
الاخ الكريم vbnet
انت مرجع كبير وموسوعة ضخمة.
انت مرجع كبير وموسوعة ضخمة.
16-05-14, 04:36 PM
صراحة خبرة وعلم غير عاديين شكرا
فكرت كثيرا هل ممكن عمل redo
ما تم عمله خو undo فهل من redo
فكرت كثيرا هل ممكن عمل redo
ما تم عمله خو undo فهل من redo
16-05-14, 05:23 PM
اخي الكريم atefkhalf2004
قبل اي اجراء الا تحب اخذ نسخة من الجدول لجدول اخر؟
اظن هذا الذي تريده.
قبل اي اجراء الا تحب اخذ نسخة من الجدول لجدول اخر؟
اظن هذا الذي تريده.
17-05-14, 05:29 PM
لا لا اقصد ذلك
ما اقصده هو
انااكتب داخل الجريد
عملت تراجع لاربعة عمليات
واريد ان ارجع الي ما فعلته مرة اخري
اي تراجع ثم اعادة
ما اقصده هو
انااكتب داخل الجريد
عملت تراجع لاربعة عمليات
واريد ان ارجع الي ما فعلته مرة اخري
اي تراجع ثم اعادة
17-05-14, 06:48 PM
السلام عليكم ورحمة الله وبركاته
مرفق صورة مشروع بالفيجوال بيزك 6
المشروع عبارة عن بحث عن التاريخ قبل وبعد 15 يوم
المطلوب بعد البحث كود يظهر كافة المدخلات تانى فى الشبكة
وشكرا
مرفق صورة مشروع بالفيجوال بيزك 6
المشروع عبارة عن بحث عن التاريخ قبل وبعد 15 يوم
المطلوب بعد البحث كود يظهر كافة المدخلات تانى فى الشبكة
وشكرا
19-05-14, 04:54 AM
(17-05-14, 05:29 PM)atefkhalf2004 كتب : [ -> ]لا لا اقصد ذلك
ما اقصده هو
انااكتب داخل الجريد
عملت تراجع لاربعة عمليات
واريد ان ارجع الي ما فعلته مرة اخري
اي تراجع ثم اعادة
استخدم لك حيلة واذا اعجبتك طبقها.
21-05-14, 06:16 PM
اين الحيلة
ا سعود
ا سعود
21-05-14, 08:27 PM
اخي الكريم
حسب مارايت من المشاركات توفر لديك (لنقول) الحد الادنى من المطلوب بقي ان تستخدم الحيلة يعني لديك المصفوفات والكائنات استخدمها مثلا تسمي متغير بمعنى بعد الحذف الاول ثم متغير اخر بمعنى ارجاع ماتم حذفه ...وهكذا.
حسب مارايت من المشاركات توفر لديك (لنقول) الحد الادنى من المطلوب بقي ان تستخدم الحيلة يعني لديك المصفوفات والكائنات استخدمها مثلا تسمي متغير بمعنى بعد الحذف الاول ثم متغير اخر بمعنى ارجاع ماتم حذفه ...وهكذا.
الصفحات : 1 2