PDA

View Full Version : سوال: عدم پاسخ درست دستور forech در دیتاگرید



r4hgozar
جمعه 29 فروردین 1393, 12:01 عصر
سلام دوستان.
من دقیقا کد زیر رو تو ی برنامه دیگه استفاده کردم و درست جواب می گیرم اما دی این برنامه کثلا اگه 5 تا سطر رو تیک بزنم فقط 4 تاش یعنی همیشه یکی کمتر رو بهم نشون میده.
کد رو چندین بار چک کردم و اشکالی توش ندیدم . نمی دونم چرا همیشه یکی کمتر واسم می فرسته.


foreach (DataGridViewRow item in dataGridView1.Rows)
{
if (Convert.ToInt32(item.Cells[0].Value) == 1)
{
int id =Convert.ToInt32(item.Cells[1].Value);
listBox1.Items.Add(id);
db.SP_Delete_TblStudent(id);

}

}



وقتی آخری رو تیک می زنم دوباره باید تو جای دیگه ی دیتاگرید کلیک کنم تا این سلول آخر هم جزو تیک خورده ها محاسبه بشه و الی انگار که تیک نخورده.

Mahmoud.Afrad
جمعه 29 فروردین 1393, 21:41 عصر
برای این که تا از سلول خارج نشید مقدارش تغییر نمیکنه.
حلقه رو جایی نوشتید که باعث نمیشه فوکوس از سلول برداشته بشه. با کد این کار رو انجام بدید. قبل از حلقه متد EndEdit از دیتاگرید رو فراخوانی کن.

r4hgozar
شنبه 30 فروردین 1393, 07:21 صبح
ممنون. اما ای کاش کدش رو می نوشتین.

forodo
شنبه 30 فروردین 1393, 07:41 صبح
سلام
بعد از حلقه foreach فوکوس رو از دیتاگرید خارج کنید.
مثلاً بزنید button1.focus();

r4hgozar
شنبه 30 فروردین 1393, 11:02 صبح
ممنون دوست عزیز. فقط اینجا واسم سوالی که پیش میاد اینه که چرا من دقیقا همین کار رو تو برنامه ی دیگه انجام دادم اما درست بود.
همین امروز صبح رو یک سیستم دیگه تمرین کردم بازم درست انجام شد؟؟؟