حذف چند سطرهایی گریدو با توجه به انتخاب سلول و یا سطر انتخابی
با سلام ، سوال اولم اینه اولا ایا میشه فهمید در حال حاضر سطر ها انتخاب شده یا یک سلول در گرید ، سوال بعدم این حالا چطوری باید حذف کنم اون هایی که انتخاب شدند رو که ارور نده ، چون وقتی مثلا من سطری که ستون دومش در گرید رو حذف میکنم و چون مثلا ستون سوم هم همزمان انتخاب شده وقتی میخواد برا اساس ستون سوم همان سطر رو حذف کنه اروو میده ! سوال سومم اینه که چطور اگر سطر انتخاب شده سطر همون سطر هارو پاک کنه واگر سلولی از سطر انتخاب شده با توجه به اون سطر هایی مورد نظر رو پاک کنه ( C# ) ممنون
5 پاسخ
با سلام به شما Itproای عزیز.
در مورد سوال اولت باید بگم که بله با استفاده از کد زیر می شه به سطر انتخاب شده از گرید دسترسی داشت
datagridview.CurrentCell.RowIndex
این دستور اندیس سطری را که انتخاب شده است را برمی گرداند. حال اگر چند سطر انتخاب شده باشند باید با اندیس به آنها دسترسی داشته باشی مانند کد زیر:
int index = yourDGV.SelectedRows[0].Index;
با پیمایش آرایه selectedRows می تونی به سطرهای انتخاب شده دسترسی داشت.
در مورد سوال دوم و سومت منظورتو متوجه نشدم کاملتر توضیح بده
راستش مشکلم اینه من نمیدونم سطر انتخاب شده یا سلول ؟؟ که از کد هایی که فرمودید استفاده کنم من از این کد ها استفاده کردم
بعد هم سه مشکل دیگ وجود داره مثلا ما الان میدونیم سلول انتخاب شده اینطوری هم یه مشکل دیگه هست اونم اینکه زمانی که کاربر به این صورت سلول هایی مارو انتخاب کرده که میتونید تو شکل پایین ببنید حال ما میخواهیم با این کد
foreach (DataGridViewCell Cell in dataGridView1.SelectedCells)
{
{
dataGridView1.Rows.RemoveAt(Cell.RowIndex);
}
}
سطرهایی که سلول هاش انتخاب شده رو پاک کنیم خب تک تک مثلا سلول 1 که ردیف یک هست رو پاک میکنه
سلول 2 هم که سطر 2 هست هم پاک میشه ( تا اینجا مشکلی نیست ! ).. مشکل اینجاست که زمانی میخواد سلول 3 و 4 که انتخاب شدن و حالا دیگه اصلا نیستند و وجود ندارند رو پاک کنه!! که اروو ایجاد میشه ..!
سلام
برای پاک کردن چند سطر انتخابی ( اگر درست متوجه شده باشم ) این کد فکر کنم کمکت کنه
for (int i = 0; i < dataGridView1.SelectedRows.Count;i++ )
dataGridView1.Rows.Remove(dataGridView1.SelectedRows[i]);
ممنون از همه دوستان که راهنمایی کردند بند رو
راستش خودم یه راه حل پیدا کردم میزارم بقیه دوستانم استفاده کنند
bool Test = true;
List<int> ListD = new List<int>();
foreach (DataGridViewCell Cell in dataGridView1.SelectedCells)
{
if (dataGridView1.Rows[Cell.RowIndex] != null)
foreach (int item in ListD)
{
if (item == Cell.RowIndex) Test = false;
}
if (Test) ListD.Add(Cell.RowIndex);
Test = true;
dataGridView1.Rows.RemoveAt(Cell.RowIndex);
}
foreach (int item in ListD)
{
dataGridView1.Rows.RemoveAt(item);
}
ی کار قشنگم میتونی انجام بدی که من خودم خیلی دوسش دارم
Selectionmode رو روی rowSelect قرار بدی
روی هر سلولی ک کلیک کنه کله سطر انتخاب میشه