PDA

View Full Version : چکونگی کار با Multiselect Row در Datagridview



ali_najari
چهارشنبه 28 مرداد 1388, 17:09 عصر
چگونه باید با کنترل MultiSelect Row در DatagridView کار کرد.؟
منظورم اینه که چطور باید با یک کلید مشخص سطرهای دلخواه رو انتخاب کرد.؟

توضیحات :
یه پروژه وجود داره که در دیتاگیرد آن رکورد های زیادی وجود داره حالا میخوام از بین این رکورد ها چند تا رو به دلخواه انتخاب کنم
چطور باید این کار رو انجام بدم ؟

BehzadBar
چهارشنبه 28 مرداد 1388, 17:20 عصر
سلام
برای اینکه بتونی در گرید مالتی سلکت داشته باشی که باید پراپرتی MultiSelect را True کنی ، ولی اگه منظورتون اینه که در گرید مثلا با فشردن کلید M یک ردیف انتخاب بشه اونو باید در رویداد KeyPress گرید بنویسی

alimanam
چهارشنبه 28 مرداد 1388, 17:56 عصر
چگونه باید با کنترل MultiSelect Row در DatagridView کار کرد.؟
منظورم اینه که چطور باید با یک کلید مشخص سطرهای دلخواه رو انتخاب کرد.؟

توضیحات :
یه پروژه وجود داره که در دیتاگیرد آن رکورد های زیادی وجود داره حالا میخوام از بین این رکورد ها چند تا رو به دلخواه انتخاب کنم
چطور باید این کار رو انجام بدم ؟

دوست عزیز سلام

این نمونه کد رو براتون نوشتم امیدوارم که مشکلتون حل بشه .

یا علی

ali_najari
چهارشنبه 28 مرداد 1388, 18:59 عصر
از راهنمایی شما خیلی ممنونم

ali_najari
چهارشنبه 28 مرداد 1388, 20:08 عصر
ببخشید من پروژه رو دیدم ولی اینطوری نمیشه

شما باید به دلخواه یوز انتخاب بشه یا حذف بشه

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

ali_najari
چهارشنبه 28 مرداد 1388, 20:56 عصر
من یه پروژه شبیه اون چیزی که میخوام رو آماده کردم که با کلید Space رکوردها را Select و Deselect میکنه
ولی یه چیز کامل و حرفه ای می خوام

ali_najari
شنبه 31 مرداد 1388, 11:08 صبح
کسی نیست کمک کنه ؟

toopak
شنبه 31 مرداد 1388, 16:00 عصر
بهترین کار اینه که از رویداد کلیک موس استفاده کنید


Private Sub DGV_MouseClick(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles DGV.MouseClick

Dim cu As Integer
Dim ex As Boolean = False
For i As Integer = 0 To ListBox1.Items.Count - 1
If ListBox1.Items.Item(i).ToString = DGV.CurrentRow.Index + 1 Then
ex = True
cu = i
End If
Next

If ex = True Then
ListBox1.Items.RemoveAt(cu)
DGV.Item(0, cu + 1).Selected = False
Else
ListBox1.Items.Add(DGV.CurrentRow.Index + 1)
End If

For i As Int32 = 0 To ListBox1.Items.Count - 1
DGV.Item(0, ListBox1.Items.Item(i) - 1).Selected = True
Next


End Sub
اینطوری کاربر پسند تر میشه و راحت تر میشه انتخاب ها رو انجام داد

alimanam
شنبه 31 مرداد 1388, 16:55 عصر
چگونه باید با کنترل MultiSelect Row در DatagridView کار کرد.؟
منظورم اینه که چطور باید با یک کلید مشخص سطرهای دلخواه رو انتخاب کرد.؟

توضیحات :
یه پروژه وجود داره که در دیتاگیرد آن رکورد های زیادی وجود داره حالا میخوام از بین این رکورد ها چند تا رو به دلخواه انتخاب کنم
چطور باید این کار رو انجام بدم ؟

با سلام

دوست عزیز اگه یه نگاه اجمالی به نوشته بالا بکنی متوجه میشی که من عین کدی رو که خواسته بودی واست نوشتم ( انتخاب چند سطر با انتخاب خودت ( شرطی رو که مدنظرتونه رو خودتون باید بنویسین من فقط از یه شرط ساده استفاده کردم )) !!!

ali_najari
شنبه 31 مرداد 1388, 17:54 عصر
نه اینطوری نمیخواستم
بچه ها اینو ببینید
البته با کلید Space انتخاب یا از حالت انتخاب در میاد

اینو همین الان نوشتم

ali_najari
شنبه 31 مرداد 1388, 17:56 عصر
بهترین کار اینه که از رویداد کلیک موس استفاده کنید


Private Sub DGV_MouseClick(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles DGV.MouseClick

Dim cu As Integer
Dim ex As Boolean = False
For i As Integer = 0 To ListBox1.Items.Count - 1
If ListBox1.Items.Item(i).ToString = DGV.CurrentRow.Index + 1 Then
ex = True
cu = i
End If
Next

If ex = True Then
ListBox1.Items.RemoveAt(cu)
DGV.Item(0, cu + 1).Selected = False
Else
ListBox1.Items.Add(DGV.CurrentRow.Index + 1)
End If

For i As Int32 = 0 To ListBox1.Items.Count - 1
DGV.Item(0, ListBox1.Items.Item(i) - 1).Selected = True
Next


End Sub
اینطوری کاربر پسند تر میشه و راحت تر میشه انتخاب ها رو انجام داد


دوست عزیز من دقیقا کار شما رو کرده بودم ولی بهتره یه نگاه به برنامه آخری که گذاشتم بندازی

تقریبا کامل تر و راحت تر از بقیه هستش