vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevDataGrid - Gönnen Sie Ihrem SQL-Kommando diesen krönenden Abschluß!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Fortgeschrittene
aktuelle Position in DGV 
Autor: ERBRU
Datum: 17.02.18 17:15

Hallo,

nach speichern einer neuen Datarow oder bearbeiten der Datarow

soll der Datenzeiger in der DGV in der aktuellen Position stehen bleiben
ich rufe dazu ein Sub auf, doch bei mir bleibt der Datensatzzeger nicht auf der aktuellen Position.

wie kann ich es sicherer machen, da ich anschließend immer noch den aktuellen Datensatz manuell markieren muss.



 Private Sub dgv_Vorgaenge_SelectRow()
        If BS_Vorgangdetails.Count > 0 Then
            dgv_Vorgaenge.Rows.Item(BS_Vorgangdetails.Position).Selected = True
        End If
    End Sub
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: aktuelle Position in DGV 
Autor: effeff
Datum: 18.02.18 11:10

Markiert die erste Zelle in Zeile 6:

dgv_Vorgaenge.CurrentCell = dgv_Vorgaenge(0, 5)
Wenn Du vor irgendwelchen Aktionen abfragst, welche Position Du im DGV innehast, kannst Du die Position nachher auch wieder einnehmen:

'Position abfragen:
Dim colIndex As Integer = DataGridView1.CurrentCell.ColumnIndex
Dim rowIndex As Integer = DataGridView1.CurrentCell.RowIndex
 
'MachhierirgendwasimDataGridview
 
'Position wieder setzen:
dgv_Vorgaenge.CurrentCell = dgv_Vorgaenge(colIndex, rowIndex)

EALA FREYA FRESENA

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: aktuelle Position in DGV 
Autor: ERBRU
Datum: 18.02.18 17:47

Supi, Danke
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: aktuelle Position in DGV 
Autor: Manfred X
Datum: 18.02.18 22:25

Hallo!

Supi???

Die Identifikation eines Datensatzes, der aus einer DB-Tabelle
gelesen worden ist, kann durch eine [u]gespeicherte Referenz der
Zeile in der Datatable erfolgen.


Wie Du schreibst, werden bei Bearbeitung eventuell ein oder mehrere Sätze
in die Tabelle eingefügt. Vielleicht ist auch Löschen, Sortieren o.a. vorgesehen.
Durch solche Operationen können sich Satz-Positionen im Gid beliebig ändern.

Ein Datensatz-Zeiger (der z.B. durch die "Position"-Eigenschaft der
Bindingsource gegegen ist), kann deshalb zur Identifikation eines bestimmten
Tabellen-Datensatzes nicht herangezogen werden.

Du kannst vor der Bearbeitung Table.Row-Referenzen der
markierten Datensätze in einem Datarow-Array zu speichern.
Nach der Bearbeitung kann man anhand dieser Referenzen die
Row-Selected-Werte entsprechend setzen.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: aktuelle Position in DGV 
Autor: effeff
Datum: 18.02.18 22:39

Die Frage lautete explizit nach dem Setzen im DataGridView...

Ich würde die BS nehmen und wenn der Datensatz nicht mehr vorhanden wäre, einen Default setzen...

Ich fürchte nur, da gibt es keine BS...

EALA FREYA FRESENA

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: aktuelle Position in DGV 
Autor: Manfred X
Datum: 18.02.18 22:45

Hallo!

Das spielt keine Rolle.
Wenn durch die Operation die Reihung der Datensätze sich
ändert, muß auf eine zuvor gespeicherte Referenz des Satzes
in der Table zurückgegriffen werden.
Die Auflistung in der Bindingsource ist nach der Operation
zu durchlaufen und durch Vergleich die aktuelle Grid-Position
des referenzierten Table-Datensatzes zu ermitteln.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel