PDA

View Full Version : فقط یکی از ستونهای چک باکس دار دیتاگرید ویو انتخاب شود



Sal_64
یک شنبه 04 اردیبهشت 1390, 08:04 صبح
سلام

بنده یک ستون چک باکس دار با کد نویسی به دیتاگرید ویو اضافه کردم
حالا میخوام فقط و فقط در هر صورت یکی از چکس باکس ها انتخاب بشه
به صورتیکه اگه کاربر قبلا چکس باکس رکورد پنج رو تیک زده باشه و حالا چک باکس ردیف دهم رو تیک بزنه ، خود به خود چکس باکس ردیف پنجم (ردبفی که قبلا انتخاب شده) حذف بشه

با استفاده از کد زیر به جایی نرسیدم
این کد ابتدا میاد تمام چک باکس ها رو از حالت تیک خورده خارج میکنه
و سپس رکوردی که تیک خورده بود رو مجداد تیک میزنه


private void dgv_search_CellMouseClick(object sender, DataGridViewCellMouseEventArgs e)
{
bool bValue = false;

if (e.ColumnIndex == dgv_search.Columns["select"].Index)
if (bValue = Convert.ToBoolean(dgv_search.Rows[e.RowIndex].Cells["select"].Value) == true)
for (int j = 0; j < dgv_search.RowCount; j++)
{
dgv_search[dgv_search.Columns["select"].Index, j].Value = false;
}
// dgv_search.EndEdit();
dgv_search[dgv_search.Columns["select"].Index, e.RowIndex].Value = true;
}

این کد بدرستی عمل نمیکنه
و نمیدوم آیا رویداد cellmouseclick همون رویداد مناسب برای این کار یا نه



با تشکر

Hossein1429
یک شنبه 04 اردیبهشت 1390, 11:37 صبح
سلام

بهتره اين رو استفاده كني ببيني جواب ميده يا نه

فرض كن n امين ستون گريدت ، چك باكسه
در همين رويدار موس كليك بنويس


if (e.ColumnIndex == n )
for (int j = 0; j < dgv_search.RowCount; j++)
dgv_search[n, j].Value = false;

dgv_search[n, e.RowIndex ].Value = true;

Sal_64
دوشنبه 05 اردیبهشت 1390, 08:30 صبح
سلام
تشکر
ظاهرا تفاوت بین دو کد در این که در کدهای شما چک نمیشه که آیا در رویداد کلیک ، چک باکسی هم تیک خوزده یا نه

-------------
هر دو کد درست عمل میکنن
ایراد در رویداد cellmouseclick ، که به درستی عمل نمیکنه
-----------
آیا میشه برای چک باکس های داخل ستونها رویداد check رو تعریف کرد ؟؟؟

تشکر

Sal_64
چهارشنبه 07 اردیبهشت 1390, 08:04 صبح
:متفکر: اصلا دیتاگرید ویو این قابلیت رو داره !!