DataGridView, Zeilen mit unterschiedlichen Eigenschaften, Tabelle erstellen und bearbeiten

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

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    DataGridView, Zeilen mit unterschiedlichen Eigenschaften, Tabelle erstellen und bearbeiten

    Hallo!

    Ich habe eine Art Programmablauf der syntaktisch folgendermaßen strukturiert ist:
    In den einzelnen Zeilen stehen Informationen zu jedem einzelnen Schritt, also solche Dinge wie Dauer, Beschreibung (Text) und Sollwerte (sowohl Float als auch Bool)
    Der Nutzer soll die Daten verändern und somit den Programmablauf definieren können. (Zahlen und Bits werden später an eine SPS übertragen, aber das ist nicht Teil meiner Frage) In einigen Zeilen sollen dabei nur bestimmte Werte (aus einem Drop-Down Menü) verwendet werden dürfen.
    Die einzelnen Eingaben muss ich vor dem Übernehmen teilweise noch auf Plausibilität (Grenzen) testen.
    Die Spalten stellen verschiedene Schritte dar.
    Das ganze habe ich als DataGridView angedacht.


    In VB6 habe ich diesen Ablauf früher schon codiert (in einem SCGrid), will das jetzt in .NET von der Funktion her nachbilden. Allerdings ist die Philosophie, so wie ich es damals gemacht habe zu der wie es in .NET ‚sein sollte‘ doch etwas anders, und ich tue mich mit der .NET-‚Denke‘ noch etwas schwer.

    Habt Ihr Ansätze für mich, wie ich das von der Struktur her (auch mit den dahinterliegenden Daten, Arrays etc) strukturieren könnte, so daß es elegant ist, und ich nicht alles mit der Hand am Arm mache?
    kennt Ihr vielleicht Beispiele, die etwas ähnliches beschreiben? (Hab bisher nichts passendes gefunden...)

    Danke schon mal.
    Gruß, P..
    Datagridview ist dafür designed, Tabellen anzuzeigen.
    In einer Tabelle haben alle Zeilen dieselben Spalten, und verhalten sich je Spalte gleich.

    Was du zu beschreiben versuchst, kann ich mir noch schlecht vorstellen, aber ich vermute, das geht nur mit viel Gemurkse.

    Also man kann tatsächlich enorm viel an einem Dgv herumfummeln und modifizieren, sogar Tabellen mit zeilenspezifischen Spalten sind denkbar.
    Aber ist enorm aufwändig, anfällig und gibts keine Vorlagen für.

    Es ist numal quasi ein zweckentfremdender Gebrauch eines Werkzeugs.
    @ErfinderDesRades Jou.
    @Phasenverschiebung Vielleicht postest Du mal ein paar Datensätze.
    Mir schwebt vor, das ganze XML-zu serialisieren, und zur Anzeige / zum Editieren einen TreeView zu nehmen, da kannst Du sehr individuelle Sachen reinpacken.
    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!
    Ist die Reihenfolge der Zeilen des Datagridviews relevant? Du willst ja quasi ne Tabelle für Steuerwerte programmieren oder? Wieviele Werte sind das circa? ~100?

    ​Vielleicht wäre es ne Möglichkeit (wenn das für dich geht) die Steuerwerte zu Gruppen zusammenzufassen (zb in solche mit festen Werten und solche ohne) und pro Gruppe ein Datagridview zu nutzen. Das wäre ggf. recht einfach. Die Grenzen, insofern vorhanden, würde ich an deiner Stelle als Spalten mit in das DGV einfügen.
    DAs Bild sieht mir sehr nach einer transponierten Tabelle aus.
    Also Zeilen und Spalten sind vertauscht, und statt von oben nach unten zu lesen, liest man von links nach rechts.

    Wenn du die Logik wieder zurückdrehen könntest, dann wäre das evtl. eine ganz normale Tabelle - halt mit 50 Spalten - aber programmiererisch einigermassen in den Griff zu kriegen.
    Vlt. kann man ja die SpaltenBeschriftungen senkrecht stellen, dann werden die Spalten schön schmal, und man hätte als User alles auf einen Blick.

    ErfinderDesRades schrieb:

    DAs Bild sieht mir sehr nach einer transponierten Tabelle aus.
    Also Zeilen und Spalten sind vertauscht, und statt von oben nach unten zu lesen, liest man von links nach rechts.


    So weit so richtig. Zurückdrehen ist leider keine Option, da das prizipielle Layout bei uns so als Standard festgelegt ist.

    Gibt es neben dem DGV vielleicht noch andere Steuerelemente, die besser geeignet wären für das, was ich vorhabe?
    Eigentlich brauche ich die Funktionalitäten, die das DGV bietet nicht großartig (automatisierte Datenanbindung etc), statt dessen will ich ja meine eigene Funktionalität hinterlegen.
    In VB6 habe ich damals das "SCGrid" verwendet, (war ein 3rd-party tool). Gibt es soetwas auch für .NET? Eine Tabellenstruktur (optik) die mir hauptsächlich die die Events für einzelne Zellen zur Verfügung stellt (in etwa: cell.click, cell.contentchanged, cell.afteredit, keypress und ähnliches)?


    Gruß, P..