Datagridview m. Checkbox, nur eines darf aktiviert sein - Logik?

  • VB.NET

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von lris08.

    Datagridview m. Checkbox, nur eines darf aktiviert sein - Logik?

    Hallo,

    habe gerade Prblme bei der logischen Umsetzung- hoffe Ihr könnt mir auf die Sprünge helfen?

    Habe dein gebundenes (DataSet [Designer]) Datagridview in dem auch in einer Spalte Checkboxen vorhanden sind.
    Nun möchte ich aber erreichen, dass immer nur eine Checkbox aktiviert werden darf.


    Hab grad n echtes Loch im Kopf...

    Was wäre ein guter Ansatz?

    lris
    Also eine RadioButon-Funktion.
    Ein guter Ansatz, eine eigene DGV-Columne zu entwerfen.
    Mit diesem Code fragst Du Deine Zelle bei Änderung des Check-States ab.

    VB.NET-Quellcode

    1. Private Sub DataGridView1_CellContentClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellContentClick
    2. If (e.RowIndex < 0) Then
    3. Return
    4. End If
    5. If (TypeOf (DataGridView1.Columns(e.ColumnIndex)) Is DataGridViewCheckBoxColumn) Then
    6. DataGridView1.EndEdit()
    7. Console.WriteLine("row={0} col={1} value ={2}", e.RowIndex, e.ColumnIndex, DataGridView1(e.ColumnIndex, e.RowIndex).Value)
    8. End If
    9. End Sub

    Wurde ein State nach True geändert, musst Du alle anderen auf False setzen.
    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!
    in [VB 2008] allgemeine Zugriffs-Lösung für: MySql, Access, SqlCe, SqlServer, DatasetOnly ist eine Lösung erstellt, wie ein Datenmodell eine CheckedListbox (multiCheck) abbildet.

    Es werden dabei codeseitig für die gecheckten Rows in einer Extra-Tabelle Datensätze gebildet, und beim UnChecken wieder gelöscht. Angezeigt wirds über eine berechnete Spalte.

    Für SingleCheck müssteste nur das codeseitige modifizieren, dass halt nur ein einziger DS in der Extra-Tabelle ist.