التعامل مع DataGridView باستخدام C#


افترض ان الـ DataGridView  المستخدمه في الشرح التالي تتكون من  اعمدة تأخد الاسامي Column1 و Column2 .. 

1 – الانتقال الي خلية محددة -  Move to specific Cell


        
-          عن طريق تحديد رقم الخلية ورقم الصف

            dataGridView1.CurrentCell =dataGridView1.Rows[0].Cells[1];

في الكود السابق تم الانتقال للخلية الثانية في الصف الاول من  DataGridView

يمكن الاستعانه باسم العمود كالتالي
 dataGridView1.CurrentCell =
 dataGridView1.Rows[0].Cells[Column2.Index];




-          وللانتقال للخلية في نفس الصف
dataGridView1.CurrentCell =     dataGridView1.Rows[dataGridView1.CurrentRow.Index].Cells[Column4.Index];


-          وللانتقال للخلية التاليه في نفس الصف

dataGridView1.CurrentCell =
dataGridView1.Rows[dataGridView1.CurrentRow.Index].Cells[dataGridView1.CurrentCell.ColumnIndex + 1];

ولتفادي الخروج عن عدد الخلايا  - Out Of Range في الكود السابق


if (dataGridView1.CurrentCell.ColumnIndex != Column4.Index)
            {
dataGridView1.Rows[dataGridView1.CurrentRow.Index]
.Cells[dataGridView1.CurrentCell.ColumnIndex + 1];
            }
else
            {
dataGridView1.Rows[dataGridView1.CurrentRow.Index].Cells[0];
            }
 ---------------------------------------------------------------------------------------------------------------------------------

2 – معرفة قيمة خليه محدده -  Value of  specific Cell

-          نفس الكود السابقة باضافه الخاصية .Value يعد تحديد موقع الخلية

string MyCellValue =(string)dataGridView1.Rows[dataGridView1.CurrentRow.Index].Cells[Column2.Index].Value;

---------------------------------------------------------------------------------------------------------------------------------

3 – استخدام  foreach مع DataGridView  
  

يمكن استخدام  foreach من اجل معرفة قيمة كل الخلايا في عمود معين واستخدامها في مصفوفه او لارسالها الي قاعدة البيانات :

string[] array = new string[dataGridView1.Rows.Count - 1];
foreach (DataGridViewRow row in dataGridView1.Rows)
            {
                if (!row.IsNewRow)
                {
                    array[row.Index] = (string)row.Cells[Column2.Index].Value;
                    MessageBox.Show(array[row.Index]);
                }
            }