Hallo
Ich versuche gerade eine Funktion zu bauen, mit der ich ausgewählten Zellen eines DGV, mithilfe von 4 Buttons (hoch, runter, links, rechts) entsprechend verschieben kann.
Also ich wähle eine beliebige Menge Zellen im DGV aus und nach Klick auf den Button links, sollen alle ausgewählten Zellen eins nach links wandern.
Meine Überlegug hierzu ist, auszulesen welche Zellen (also Row- und Columnindex) überhaupt angeklickt sind und den Row. - bzw. ColumnIndex entsprechend der Richtung (oben unten links rechts) zu ändern.
Allerdings scheitere ich daran.
Ansatz 1 liefert mir zwar mittels messagebox.show(cell.tostring) die korrekten Row und Column Indexes, allerdings kann ich codetechnisch nicht darauf zu greifen.
Ansatz 2 liefert mir leider immer nur Col und Row Index einer Zelle (nicht der Selection).
Wie gehe ich hier am besten ran?
Wer mag, findet Demo natürlich im Anhang.
Ich versuche gerade eine Funktion zu bauen, mit der ich ausgewählten Zellen eines DGV, mithilfe von 4 Buttons (hoch, runter, links, rechts) entsprechend verschieben kann.
Also ich wähle eine beliebige Menge Zellen im DGV aus und nach Klick auf den Button links, sollen alle ausgewählten Zellen eins nach links wandern.
Meine Überlegug hierzu ist, auszulesen welche Zellen (also Row- und Columnindex) überhaupt angeklickt sind und den Row. - bzw. ColumnIndex entsprechend der Richtung (oben unten links rechts) zu ändern.
Allerdings scheitere ich daran.
VB.NET-Quellcode
- Private Sub BTNLeft_Click(sender As Object, e As EventArgs) Handles BTNLeft.Click
- If DataGridView1.SelectedCells.Count = 0 Then Exit Sub
- 'Ansatz 1
- Dim selectedCells = DataGridView1.SelectedCells
- Dim rowindex As Integer
- Dim colindex As Integer
- For Each cell In selectedCells
- rowindex = cell.rowindex 'für die einzelnen Cells gibt's keine Row oder Column Eigenschaft
- Next
- 'Ansatz 2
- Dim col = DataGridView1.CurrentCell.ColumnIndex
- Dim row = DataGridView1.CurrentCell.RowIndex
- 'die beiden Eigenschaften beziehen sich immer nur auf eine Zelle
- MessageBox.Show(col.ToString & " " & row.ToString)
- End Sub
Ansatz 1 liefert mir zwar mittels messagebox.show(cell.tostring) die korrekten Row und Column Indexes, allerdings kann ich codetechnisch nicht darauf zu greifen.
Ansatz 2 liefert mir leider immer nur Col und Row Index einer Zelle (nicht der Selection).
Wie gehe ich hier am besten ran?
Wer mag, findet Demo natürlich im Anhang.