بهار آموزش با تخفیف های شگفت انگیز توسینسو بهار آموزش با تخفیف های شگفت انگیز توسینسو
مانده تا پایان تخفیف
مشاهده دوره ها
0

حذف چند سطرهایی گریدو با توجه به انتخاب سلول و یا سطر انتخابی

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

پرسیده شده در 1394/10/29 توسط

5 پاسخ

3

با سلام به شما Itproای عزیز.

در مورد سوال اولت باید بگم که بله با استفاده از کد زیر می شه به سطر انتخاب شده از گرید دسترسی داشت

datagridview.CurrentCell.RowIndex

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

int index = yourDGV.SelectedRows[0].Index;

با پیمایش آرایه selectedRows می تونی به سطرهای انتخاب شده دسترسی داشت.

در مورد سوال دوم و سومت منظورتو متوجه نشدم کاملتر توضیح بده

پاسخ در 1394/10/29 توسط
0

راستش مشکلم اینه من نمیدونم سطر انتخاب شده یا سلول ؟؟ که از کد هایی که فرمودید استفاده کنم من از این کد ها استفاده کردم

راستش مشکلم اینه من نمیدونم سطر انتخاب شده یا سلول  ؟؟ که از کد هایی که فرمودید استفاده کنم من از این کد ها استفاده کردم 

||http://programming.tosinso.com/files/get/00a2ba47-d288-4b21-9a05-57a3523dd58f||

بعد هم سه مشکل دیگ وجود داره مثلا ما الان میدونیم سلول انتخاب شده اینطوری هم یه مشکل دیگه هست اونم اینکه زمانی که کاربر به این صورت سلول هایی مارو انتخاب کرده  که میتونید تو شکل پایین ببنید حال ما میخواهیم با این کد 

<c#>
 foreach (DataGridViewCell Cell in dataGridView1.SelectedCells)
            {
                {
                    dataGridView1.Rows.RemoveAt(Cell.RowIndex);
                }
            }
<c#>

سطرهایی که سلول هاش انتخاب شده رو پاک کنیم خب تک تک مثلا سلول 1 که ردیف یک هست رو پاک میکنه 
سلول 2 هم که سطر 2 هست هم پاک میشه ( تا اینجا مشکلی نیست ! ).. مشکل اینجاست که زمانی میخواد سلول 3 و 4 که انتخاب شدن و حالا دیگه اصلا نیستند و وجود ندارند رو پاک کنه!! که اروو ایجاد میشه ..!

بعد هم سه مشکل دیگ وجود داره مثلا ما الان میدونیم سلول انتخاب شده اینطوری هم یه مشکل دیگه هست اونم اینکه زمانی که کاربر به این صورت سلول هایی مارو انتخاب کرده که میتونید تو شکل پایین ببنید حال ما میخواهیم با این کد

 foreach (DataGridViewCell Cell in dataGridView1.SelectedCells)
            {
                {
                    dataGridView1.Rows.RemoveAt(Cell.RowIndex);
                }
            }

سطرهایی که سلول هاش انتخاب شده رو پاک کنیم خب تک تک مثلا سلول 1 که ردیف یک هست رو پاک میکنه

سلول 2 هم که سطر 2 هست هم پاک میشه ( تا اینجا مشکلی نیست ! ).. مشکل اینجاست که زمانی میخواد سلول 3 و 4 که انتخاب شدن و حالا دیگه اصلا نیستند و وجود ندارند رو پاک کنه!! که اروو ایجاد میشه ..!

پاسخ در 1394/10/29 توسط
3

سلام

برای پاک کردن چند سطر انتخابی ( اگر درست متوجه شده باشم ) این کد فکر کنم کمکت کنه

            for (int i = 0; i < dataGridView1.SelectedRows.Count;i++ )
                dataGridView1.Rows.Remove(dataGridView1.SelectedRows[i]);
پاسخ در 1394/10/29 توسط
1

ممنون از همه دوستان که راهنمایی کردند بند رو

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

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);
            }
پاسخ در 1394/10/29 توسط
2

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

Selectionmode رو روی rowSelect قرار بدی

روی هر سلولی ک کلیک کنه کله سطر انتخاب میشه

پاسخ در 1394/10/30 توسط

پاسخ شما