Aus DataGridView aus der ausgewählten Zeile die Daten herausbekommen

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 17 Antworten in diesem Thema. Der letzte Beitrag () ist von us4711.

    Aus DataGridView aus der ausgewählten Zeile die Daten herausbekommen

    Servus!

    Bin grad an einer Demo zum Auslesen und verarbeiten von Daten aus einer Excel-Datei mit BindingSource und DataGridView.

    Dazu lese ich aus einer Excel meine Daten aus und kapsle die gelesenen Daten in einem Objekt. Diese Objekt füge ich einer BindingList hinzu, welche ich als DataSource für ein DataGridView verwende.

    Soweit zum Ablauf, nur was ich jetzt brauche ist folgendes: Wenn ich im DGV eine Zeile auswähle, will ich die Daten der ausgewählten Zeile im GUI mit Hilfe von Labels und Textboxen anzeigen. Leider hab ich bisher keinen einfachen Weg gefunden, wie ich - etwa via Event - mit der ausgewählte Zeile arbeiten kann. Ich hab zwar das SelectionChanged Event gefunden, ist aber leider ned das was ich suche. Evtl kann mir da wer von euch auf die Sprünge helfen. Falls noch erklärungen von Nöten sind, bitte melden.

    Lg Radinator
    In general (across programming languages), a pointer is a number that represents a physical location in memory. A nullpointer is (almost always) one that points to 0, and is widely recognized as "not pointing to anything". Since systems have different amounts of supported memory, it doesn't always take the same number of bytes to hold that number, so we call a "native size integer" one that can hold a pointer on any particular system. - Sam Harwell
    @us4711:€ Danke für die fixe Antwort. Aber wie komm ich jetzt dann an die Werte?
    Ich hatte gehofft, dass ich über das DGV per Attribut SelectedRow(s) mir dann über die ausgewählten Rows per Indexzugriff einfach nur noch die aktuelle Row in meinen BindingList(Of T)-Typen casten muss und dann mir die Werte aus dem Ergebnis ziehen kann

    Aber ich werds mal über die BindingSource machen.
    Eine Frage noch: Gibt es noch ein anderes (besseres) Event für das feststellen des "Auswahl hat sich geändert"?

    Lg Radinator
    In general (across programming languages), a pointer is a number that represents a physical location in memory. A nullpointer is (almost always) one that points to 0, and is widely recognized as "not pointing to anything". Since systems have different amounts of supported memory, it doesn't always take the same number of bytes to hold that number, so we call a "native size integer" one that can hold a pointer on any particular system. - Sam Harwell

    Radinator schrieb:

    mit der ausgewählte Zeile arbeiten kann
    Was funktioniert denn da mit welchem Code nicht?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    Radinator schrieb:

    Ich hatte gehofft, dass ich über das DGV per Attribut SelectedRow(s) mir dann über die ausgewählten Rows per Indexzugriff einfach nur noch die aktuelle Row in meinen BindingList(Of T)-Typen casten muss und dann mir die Werte aus dem Ergebnis ziehen kann


    Ich habe dafür diese Lib runtergeladen:
    blw.sourceforge.net/

    VB.NET-Quellcode

    1. Private Sub dgv_CellContentClick(sender As System.Object, e As System.Windows.Forms.DataGridViewCellEventArgs) Handles dgv.CellContentDoubleClick
    2. Dim file As CodeFile= DirectCast(LinesBindingSource.Current, ObjectView(Of CodeFile)).Object


    Ich habe sonst nämlich kein Objekt meiner Klasse aus der Bindingsource rausgekriegt.

    RodFromGermany schrieb:

    Was funktioniert denn da mit welchem Code nicht?
    Ok "funktioniert nicht" ist etwas zu hart...es funktioniert lediglich nicht so, wie ich es gerne hätte.
    Zum Code:
    Mein Ziel wäre es per DataGridView.SelectedRows.Items(0). ein Objekt zu erhalten, welches meine BindingList definiert.
    Als Bsp: Wenn ich als Datenbindung eine BindingList(Of Employee) habe, wäre mein Ziel es, mit DataGridView.SelectedRows.Items(0). (oder auch ohne den Punkt) ein Employee Objekt zu erhalten, mit welchem ich dann weitergehen arbeiten kann. Aber so wie es bisher aussieht, muss ich wohl über DataGridView.SelectedRows.Items(0).Cells.Item(index).Value (.Value gibt ein Object zurück - just say'in) mit das Ergbnis heraussuchen. Schade eigentlich :(

    Naja kann man nix machen. Aber wenn wer von euch doch eine Lösung hat, dann würde ich denjenigen doch bitten, sich bei mir zu melden. Danke!

    Lg Radinator
    In general (across programming languages), a pointer is a number that represents a physical location in memory. A nullpointer is (almost always) one that points to 0, and is widely recognized as "not pointing to anything". Since systems have different amounts of supported memory, it doesn't always take the same number of bytes to hold that number, so we call a "native size integer" one that can hold a pointer on any particular system. - Sam Harwell
    Ooh...Ups, habs echt überlesen, sry @WhitePage. Danke dir für den Link. *Daumen hoch*

    Jedoch wollte ich das ganze nur mit FW-Mitteln lösen. Wie gesagt mit DataGridView.SelectedRows.Items(0) ein Employee Objekt erhalten (oder auch nur ein "Object" Objekt, welches ich dann casten kann)

    Lg Radinator
    In general (across programming languages), a pointer is a number that represents a physical location in memory. A nullpointer is (almost always) one that points to 0, and is widely recognized as "not pointing to anything". Since systems have different amounts of supported memory, it doesn't always take the same number of bytes to hold that number, so we call a "native size integer" one that can hold a pointer on any particular system. - Sam Harwell
    Und woher weiß ich dann welche Daten ich aus der BindingList herausholen muss?
    In general (across programming languages), a pointer is a number that represents a physical location in memory. A nullpointer is (almost always) one that points to 0, and is widely recognized as "not pointing to anything". Since systems have different amounts of supported memory, it doesn't always take the same number of bytes to hold that number, so we call a "native size integer" one that can hold a pointer on any particular system. - Sam Harwell
    Nochmal Danke an @WhitePage! Die Lösung mit BindingSource.Current hat geholfen!
    In general (across programming languages), a pointer is a number that represents a physical location in memory. A nullpointer is (almost always) one that points to 0, and is widely recognized as "not pointing to anything". Since systems have different amounts of supported memory, it doesn't always take the same number of bytes to hold that number, so we call a "native size integer" one that can hold a pointer on any particular system. - Sam Harwell
    @us4711: Dazu muss man aber erst mal die BindingSource verwenden - was ist zuvor nicht gemacht habe ;D
    In general (across programming languages), a pointer is a number that represents a physical location in memory. A nullpointer is (almost always) one that points to 0, and is widely recognized as "not pointing to anything". Since systems have different amounts of supported memory, it doesn't always take the same number of bytes to hold that number, so we call a "native size integer" one that can hold a pointer on any particular system. - Sam Harwell