DataGridView.SelectedRows Problem



  • Hallo,

    mein Programm funktioniert grundsätzlich einwandfrei, aber wenn man nicht vorher das GridView anclickt, dann stürzt das Programm ab, da SelectedRows anscheinend keine Einträge enthält (obwohl der erste Eintrag zumindest blau hervorgehoben ist). Ich kann das natürlich mit Focus() lösen, aber das empfinde ich als nicht besonders schön. Vorallem müsste ich das bei allen meinen Formularen nachtragen.

    Gibt es da eine bessere Lösung?

    Oder was mir auch zusagen würde: Gibt es eine Möglichkeit, dass das DataGridView auch erlaubt kein Datensatz auszuwählen? In dem Fall könnte ich meine Buttons entsprechend Enabled = false setzen und es kann nichts mehr schief gehen.

    Vielen Dank und noch ein schönes Wochenende 🙂



  • Hallo,

    überprüf halt bevor du auf SelectedRows zugreifst obs null ist.



  • Das kann ich dem User dann aber nicht zumuten. Denn der Datensatz wird als ausgewählt angezeigt. Warum das so ist, weiß ich nicht. Scheint wohl so eine Eigenart vom DataGridView zu sein.

    Jedenfalls würde der User denken, das der Eintrag dann auch ausgewählt ist und versucht darauf Operationen auszuführen, was dann nicht geht und ihn damit völlig verwirrt.


  • Administrator

    Exy schrieb:

    Gibt es da eine bessere Lösung?

    Wahrscheinlich schon, denn dieses Verhalten kann ich nicht reproduzieren. Man findet auch nichts in den gängigen Foren zu so einem Problem. Wahrscheinlich machst du irgendwo was anderes falsch.

    Exy schrieb:

    Oder was mir auch zusagen würde: Gibt es eine Möglichkeit, dass das DataGridView auch erlaubt kein Datensatz auszuwählen? In dem Fall könnte ich meine Buttons entsprechend Enabled = false setzen und es kann nichts mehr schief gehen.

    Meinst du damit ClearSelection ?

    Grüssli



  • Danke für eure Antworten 🙂

    Zumindest bin ich jetzt dem Ursprung des Problems auf die Schliche gekommen. Und zwar liegt es daran, das ich einige Felder im DataGridView auf Visible = false gesetzt habe. Der Grund ist ganz einfach: Über DataBinding lasse ich das GridView füllen, benötige jedoch einige Felder nicht (z.B. Primärschlüssel - ist für meine Benutzer uninteressant und verwirrend).

    Jedenfalls bringt der Zugriff auf ein solch unsichtbares Feld eine Fehlermeldung an den Tag. Es sei denn, man clickt vorher einmal auf das DataGridView. Dann klappt alles ganz normal...

    Ich kriege das Problem leider nicht in den Griff.

    ClearSelection habe ich auch ausprobiert, aber die Felder die ich über DataBinding gebunden habe werden dann nicht geleer. Ich stelle mir das eben so vor, das man auch keinen Eintrag auswählen kann und wenn kein Eintrag ausgewählt ist, dann müssen natürlich auch die gebundenen Felder keinen Inhalt mehr haben.


Log in to reply