Hallo yndaso,
da kann man ja eigentlich nur sagen: "Mein Beileid". Das scheint ja ein wirkliches Horrorprojekt zu sein...
Am besten wird wohl sein, du führst die Umstellung auf "Data Binding" in mehreren Schritten durch:
- zuerst analysiere und filtere mal alle Methoden, welche direkt auf das DataGridView zugreifen
(evtl. kannst du diese einfach mal in eine andere Datei (mittels "partial class") auslagern)
- dann erstellst du eine Daten-/Modellklasse, welche die Funktionalität nachstellt (ohne Zugriff auf GUI-Komponenten!)
Evtl. mußt du dann einige Ereignisse dort definieren, falls in dem Originalcode auf andere GUI-Elemente zugegriffen wird (Entkopplung von GUI und Logik).
Diese Klasse kannst du dann entweder von DataSet/DataTable ableiten bzw. diese per Komposition einbinden.
- Als letztes erzeugst du nun in der Form-Klasse eine Instanz der Datenklasse (und abonnierst die benötigten Ereignisse) und bindest diese (bzw. bei Komposition über eine DataTable-Eigenschaft) an das DataGridView per DataSource-Eigenschaft
(reine GUI-Funktionalitäten der DataGridView-Methoden wie z.B. Zeichnen oder Farbänderungen etc. sollten selbstverständlich in der Form-Klasse bleiben)
Ich selber hatte auch mal so ein Riesen-Projekt, wo sämtliche GUI (mehrere Tabpages mit Hunderten von Controls) in einer einzigen Formklasse codiert worden war. Das hat dann auch einige Wochen gedauert, daraus dann einzelne UserControls zu extrahieren und die Hauptform zu "entschlacken".
Evtl. wäre das auch für dein Projekt interessant, einzelne GUI-Komponenten als UserControls auszulagern, so daß die eigentliche MainForm nur noch aus wenigen Komponenten besteht (meistens ist es ja so, daß nicht alle GUI-Elemente mit allen anderen GUI-Elementen in Verbindung stehen, so daß man auch hier eine logische Aufteilung vornehmen kann).
Viel Erfolg und gib dann mal Rückmeldung wie es geklappt hat (bzw. stelle Fragen, falls du nicht genau weißt, wie du etwas umsetzen sollst).