01-05-18, 02:09 PM
(01-05-18, 10:10 AM)عبدالله الدوسري كتب : أخي atef_020
توجد أخطاء كثيرة في مشروعك
وبما أنك مبتدئ يجب عليك تقبل النقد ، هناك أمور كثيرة لا تتم بالطريقة التي تفكر بها أنت .
ولا يعني أنك فكرت في فكرة أنك تقوم بتطبيقها حتى لو كانت خطأ بدون قصد منك أو لعدم معرفتك بالأفكار وطريقت تطبيقها بالشكل الصحيح.
هذا الخطاء الذي يحدث لديك :
كود :
' SellDataGridView.Rows هذة تعتبر كولكشن يعني مجموعة من السجلات
' عند بداية الإلتفاف أنت الآن تعرف بعدد اللفات
' SellDataGridView.RowCount من خلال المتغير
' نفترض أن عدد السجلات هو 5 سجلات
' For i As Integer = 0 To SellDataGridView.RowCount - 2
' For i As Integer = 0 To 5 - 2 : إذن هكذا يتم التعبير عنها
' For i As Integer = 0 To 3 : تصبح هكذا
' يعني من الرقم صفر إلى الرقم 3
' 0 + 1 + 2 + 3
' يعني المجموع هو عدد 4 سجلات سيتم الإلتفاف عليهم
' بأن العدد هو 4 سجلات وداخل الإلتفاف تقوم بتغيير كلامك بحذف سجل For لماذا تخبر الكلمة
' وغير صادق معها For أنت تراوغ مع الكلمة
' عندما تقول أنك ستلف على أربع سجلات إذن يجب أن تلف على أربع سجلات
' لا تقوم بحذف سجل داخل عملية الإلتفاف
For i As Integer = 0 To SellDataGridView.RowCount - 2
' تقوم بتغيير عدد المجموعة Loop وهنا داخل عملية الـ
' وذلك من خلال حذف سجل في كل لفة
' في بداية عملية الإلتفاف SellDataGridView.RowCount الآن يختلف عن SellDataGridView.RowCount
SellDataGridView.Rows.RemoveAt(SellDataGridView.CurrentRow.Index)
' كان العدد 5 والأن أصبح 4 بعد أن تم الحذف SellDataGridView.RowCount
' بعد عملية الحذف إختلفت الموازين الآن وعدد اللفات كما هو ثابت ولكن عدد السجلات تغير
' الآن عدد اللفات لا يساوي عدد السجلات
' هذا يعني أنه هناك لفة ستتم لا يقابلها سجل موجو
' For وذلك لأنك حذفت أحد السجلات داخل العملية
Next
اشكرك اخى الفاضل ا عبد الله الدوسرى
على التوضيح والشرح المميز انت تعرف انى مبتدى فى هذا المجال واريد ان اتعلمة وكنت اقصد ب SellDataGridView.Rows.RemoveAt(SellDataGridView.CurrentRow.Index)
انى احذف محتوى الدتاجريد فيو بعد الحفظ
واشكر كل الاساتذة اللى تفضلو بالرد على اسئلتى جزاكم الله خيرا
