Einfache To Do Liste

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

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

    Einfache To Do Liste

    Guten Tag,

    Ich möchte in Visual Basic eine einfache ToDo Liste erstellen.
    Im Programmieren bin ich nur mässig erfahren, daher folgende Frage:
    Ich möchte per Klick auf einen Button eine neue Reihe bestehend aus einer Textbox (Aufgabe) und einem Button (Erledigt/Nicht erledigt) entstehen lassen.
    Das kann ich alles noch über controls.add. Wie kann ich aber Für die neu erstellten Buttons Events einstellen?


    Danke im Voraus, und schönen Tag noch
    Würde ich dringend von abraten.
    Eine ToDo-Liste ist bereits eine Tabelle, und Tabellen solltest du mit dem bereitstehenden Instrumentarium für Datenverarbeitung verarbeiten.
    Da ist viel neues zu lernen, und eine andere Denkweise, nämlich vor allem, Daten und Controls zu trennen, und statt unausgesetzt an Controls rumzufummeln, Databinding diesen Job machen lassen, und sich selbst auf die Daten konzentrieren.
    Dein Ansatz geht in die entgegengesetzte Richtung, wo sich Controls und Daten immer mehr und enger verknüpfen und vermischen, was in einem Wust von Problemen steckenbleibt, wenn mit der Zeit die Anforderungen anspruchsvoller werden.
    Lern lieber gleich die Datenverarbeitungs-Vorraussetzungen richtig - das ist bereits mittelfristig schneller als das sich Durchwursteln mit dem zwar altbekannten, aber ineffizienten.
    Konkret musst du ja nur ein Dataset mit nur einer Tabelle anlegen - ungefähr wie in Daten laden, speichern, verarbeiten - einfachste Variante, post#1 gezeigt.
    Wenn du dann Erledigt als Boolean-Spalte anlegst, dann macht dir das Datagridview auch gleich eine CheckboxColumn dafür hin, und zum Zufügen brauchst du nichtmal einen Extra-Button (optional natürlich durchaus möglich).
    Vielen Dank für deine Antwort. Dann werde ich mich mal in den Inhalt dieser Links einarbeiten :)

    Dennoch würde es mich interessieren, wie ich Events eines während Runtime erstellten Objekts (bspw. Buttons) einstellen kann. Werde auf Google nicht fündig.
    Kannst du mir da helfen?
    Worauf @ErfinderDesRades hinaus will ist, du haust dir auf die GUI ein DataGridView, das über Databinding an die Datenquelle gebunden wird. Dabei brauchst du dich so gut wie garnicht um irgendwleche Updates, Refreshes, oder Events zu kümmern. Das Binding nimmt dir alles ab. Du hast danach den Komfort in besagtem DataGridView einfach Zeilen hinzufügen, verändern und löschen zu können, und hast dabei kaum ne Zeile Code generiert.

    XpressMak schrieb:

    Dennoch würde es mich interessieren, wie ich Events eines während Runtime erstellten Objekts (bspw. Buttons) einstellen kann. Werde auf Google nicht fündig.
    Kannst du mir da helfen?
    Ein wichtiges (nicht das einzige) Element, was man braucht, solch nu unbedingt doch so zu lösen wäre das AddHandler - Schlüsselwort.
    Ist natürlich gut, dieses zu kennen, aber wie gesagt, das jetzt auf dieses Problem anzuwenden lenkt dich von der "richtigen" Vorgehensweise ab, und lehrt dich also schlechte Gewohnheiten.
    Und progger-schlechte-Gewohnheiten sind ganz schnell eingeschliffen - dagegen ist die Sucht-Prävalenz von Heroin gradezu harmlos.
    Nur ein einziger Erfolg mit einer schlechten Vorgehensweise führt sofort zur "Abhängigkeit", denn das nächste ähnlich gelagerte Problem wird man natürlich auf exakt dieselbe Weise angehen, die schon einmal funktioniert hat.
    Und ist diese Weise im Grunde genommen Mist, dann baut man fürderhin nur noch Mist - jdfs. bei ähnlich gelagerten Probs.

    Aber AddHandler kannste hier zB in Aktion sehen: Alles über Events
    ich hoffe, mit einem gebundenen Datagridview.
    Das wesentliche an der von mir empfohlenen Vorgehensweise ist nämlich nicht das DatagridView, sondern das typisierte Dataset und das Databinding daran.

    Und zu diesem Wesentlichen gehört, den Kopf überhaupt frei zu kriegen vom Stieren aufs Datagridview.
    Also wenn du sagst "Mache es nun mit dem Data Grid View. " - dann hast du gewissermaßen vom Weg noch nicht den ersten Schritt getan.