Mani_rf
چهارشنبه 20 خرداد 1388, 18: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 برای بار دوم زده شود سطری که بالا رفته به جای قبلی باز می گردد.
ممنون می شوم اگر کسی راهنمایی کند.
با تشکر.
:لبخند:
می خواستم برای یک 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 برای بار دوم زده شود سطری که بالا رفته به جای قبلی باز می گردد.
ممنون می شوم اگر کسی راهنمایی کند.
با تشکر.
:لبخند: