PDA

View Full Version : سوال: جابجا کردن دوسطر DataGridView



Mani_rf
چهارشنبه 20 خرداد 1388, 17:17 عصر
سلام.
می خواستم برای یک DataGridView دو تا دکمه Up و Down بگذارم که با زده شدن آنها سطر انتخاب شده را به بالا و پایین ببرید.
برای این کار از این روش استفاده کردم :




If DgvPrinters.CurrentRow.Index = 0 Then Exit Sub

Dim SelectdeRow As Integer = DgvPrinters.CurrentRow.Index

Dim T1, T2, T3 As String
T1 = DgvPrinters(0, SelectdeRow).Value
T2 = DgvPrinters(1, SelectdeRow).Value
T3 = DgvPrinters(2, SelectdeRow).Value

DgvPrinters(0, SelectdeRow).Value = DgvPrinters(0, SelectdeRow - 1).Value
DgvPrinters(1, SelectdeRow).Value = DgvPrinters(1, SelectdeRow - 1).Value
DgvPrinters(2, SelectdeRow).Value = DgvPrinters(2, SelectdeRow - 1).Value

DgvPrinters(0, SelectdeRow - 1).Value = T1
DgvPrinters(1, SelectdeRow - 1).Value = T2
DgvPrinters(2, SelectdeRow - 1).Value = T3

DgvPrinters.Rows(SelectdeRow - 1).Selected = True



(کد دکمه Up)



(البته اول از یک روش بهتر و کوتاه تر استفاده کردم اما چون کار نکرد این روش را به کار بردم که البته این هم جواب نداد.) مشکل از این است که موقعی که کد :

DgvPrinters.Rows(SelectdeRow - 1).Selected = True


اجرا می شود سطر مورد نظر انتخاب می شود اما DgvPrinters.CurrentRow.Index تغییر نمی کند (در صورتی که آن هم باید یک واحد کم شود) (حتما همه می دانید که DgvPrinters.CurrentRow.Index از نوع ReadOnly است و نمی توان آن را در زمان اجرا عوض کرد.) و اگر دکه Up برای بار دوم زده شود سطری که بالا رفته به جای قبلی باز می گردد.

ممنون می شوم اگر کسی راهنمایی کند.
با تشکر.


:لبخند:

scream666_ss
سه شنبه 03 شهریور 1388, 12:52 عصر
این کدش است امیدوارم کمکت کنه

dgv.Rows(dgv.CurrentRow.Index + 1).Selected() = True
dgv.CurrentCell = dgv.Rows(dgv.CurrentRow.Index + 1).Cells(0)

Mani_rf
سه شنبه 28 مهر 1388, 18:51 عصر
نه دوست عزیز. متاسفانه با این کد چیزی عوض نشد. من در انتخاب سطر مشکلی ندارم مشکل در اینجاست که هنگام عوض شدن سطر فعال توسط کد CurrentRow تغییری نمی کند.