PDA

View Full Version : سوال: کنترل چک باکس در dataGridView



barbimusic
سه شنبه 15 آبان 1397, 09:22 صبح
سلام . وقتتون به خیر .
من یه گرید ویو دارم که هر ستونش چک باکس داره . حالا یه دکمه ای هم دارم که کل این ستون هارو انتخاب میکنه (چک باکسشون فعال میشه) . حالا من میخام که وقتی دکمه انتخاب همه تیک خورده باشه و کاربر بعدش بیاد مثلا چند تا ستون رو تیکشو برداره . همچنان تیک انتخاب همه فعال باشه ولی اگه تیک همه ی ستون هارو دستی برداشت ، تیک انتخاب همه هم اتوماتیک برداشته بشه . دقیقا مثل سلکت آل تو ویندوز .
ممنونم

shaho.khedri
سه شنبه 15 آبان 1397, 15:30 عصر
سلام
یه راه ساده اینه که با هر تغییر حالت چک باکس های داخل Gridview وضعیت بقیه چک باکس ها رو چک کنید. توی Event مربوط به تغییر حالت چک باکس که میتونه CellContentClick باشه:
int checkedCount = 0;

foreach(DataGridViewRow row in dataGridView1.Rows){

if(Convert.ToBoolean(row.Cells["CheckBoxColumnNameOrIndex"].EditedFormattedValue) == true){

checkedCount++;

}
}


if(checkedCount == 0){

cbSelectAll.checked = false;

}


if(checkedCount == dataGridView1.Rows.Count){

cbSelectAll.checked = true;

}

barbimusic
سه شنبه 15 آبان 1397, 16:57 عصر
سلام
یه راه ساده اینه که با هر تغییر حالت چک باکس های داخل Gridview وضعیت بقیه چک باکس ها رو چک کنید. توی Event مربوط به تغییر حالت چک باکس که میتونه CellContentClick باشه:
int checkedCount = 0;

foreach(DataGridViewRow row in dataGridView1.Rows){

if(Convert.ToBoolean(row.Cells["CheckBoxColumnNameOrIndex"].EditedFormattedValue) == true){

checkedCount++;

}
}


if(checkedCount == 0){

cbSelectAll.checked = false;

}


if(checkedCount == dataGridView1.Rows.Count){

cbSelectAll.checked = true;

}

خیلی ممنونم . جواب داد . مرسی