Hallo Leute,
ich habe einen DGV an den eine bs dranne hängt.
Der User soll jetzt die Möglichkeit haben, Datensätze hoch und runter schieben zu können. Dafür habe ich eine Spalte mit eingebaut, die ich als sortierspalte verwende.
Funktioniert auch alles soweit wunderbar mit dem sortieren.
Jetzt möchte ich aber, dass die verschobene Zeile weiterhin die aktive bleibt.
Nur leider funktioniert das nur bedingt.
Ich hatte mich jetzt für diesen weg entschieden:
Jetzt habe ich aber das Problem, dass wenn ich in der ersten Zeile binn, ich die .position zurückbekomme. Erst wenn ich das 2.mal die Zeile verschiebe, bekomme ich
für die position der ersten Zeile eine 1 zurück.
Wie kommt das?
Hier der komplette Code:
Interessanterweise, funktioniert das in einem anderen dgv.
Ich habe es auch schon mit .movenext probiert.
Aber immer in der ersten und vorletzen Zeile gibt es probleme.
Die sortierung lege ich beim Form öffnen fest.
ich habe einen DGV an den eine bs dranne hängt.
Der User soll jetzt die Möglichkeit haben, Datensätze hoch und runter schieben zu können. Dafür habe ich eine Spalte mit eingebaut, die ich als sortierspalte verwende.
Funktioniert auch alles soweit wunderbar mit dem sortieren.
Jetzt möchte ich aber, dass die verschobene Zeile weiterhin die aktive bleibt.
Nur leider funktioniert das nur bedingt.
Ich hatte mich jetzt für diesen weg entschieden:
Jetzt habe ich aber das Problem, dass wenn ich in der ersten Zeile binn, ich die .position zurückbekomme. Erst wenn ich das 2.mal die Zeile verschiebe, bekomme ich
für die position der ersten Zeile eine 1 zurück.
Wie kommt das?
Hier der komplette Code:
VB.NET-Quellcode
- Private Sub cmdStabDown_Click(sender As Object, e As EventArgs) Handles cmdStabDown.Click
- Dim _Order As String
- 'MessageBox.Show(CStr(StabdatenBindingSource.Position))
- If StabdatenBindingSource.Current Is Nothing Then
- Exit Sub
- End If
- Dim currentView = DirectCast(DirectCast(StabdatenBindingSource.Current, DataRowView).Row, StabdatenRow)
- Dim _position = StabdatenBindingSource.Position
- StabdatenBindingSource.MoveNext()
- Dim nextRow = DirectCast(DirectCast(StabdatenBindingSource.Current, DataRowView).Row, StabdatenRow)
- Dim FirstRow As DataSet1.StabdatenRow
- FirstRow = DataSet1.Stabdaten.FindByStabID(currentView.StabID)
- _Order = FirstRow.StabOrder
- Dim SecondRow As DataSet1.StabdatenRow
- SecondRow = DataSet1.Stabdaten.FindByStabID(nextRow.StabID)
- FirstRow.StabOrder = SecondRow.StabOrder
- SecondRow.StabOrder = _Order
- Dim found As Integer = StabdatenBindingSource.Find("StabID", currentView.StabID)
- StabdatenBindingSource.Position = found
- End Sub
Interessanterweise, funktioniert das in einem anderen dgv.
Ich habe es auch schon mit .movenext probiert.
Aber immer in der ersten und vorletzen Zeile gibt es probleme.
Die sortierung lege ich beim Form öffnen fest.
"Mann" lernt mit seinen Projekten.