Einen Dialog in C#WinForms erzeugen

Für meine CATIA-Apps war ein spezieller CatiaFileDialog erforderlich. Der Sinn besteht darin, die Möglichkeiten der CATIA Interna für den Anwender nutzbar zu machen.

Es stand die Frage im Raum, von welcher Form oder Komponente sollte geerbt werden? Die MSDN gibt da keine recht eindeutige Antwort. Also habe ich der Einfachheit halber mit einer Form begonnen. Aus der Zeit mit Gtk+ wusste ich noch, dass es eine spezielle GtkDialog-Klasse gab. So etwas sollte doch auch in WinForms möglich sein, oder?

Bei der Analyse der OpenFileDialog > FileDialog > CommonDialog Vererbungskette war ich doch geneigt es genauso für CATIA zu tun. OpenCatiaFileDialog > CatiaFileDialog > CommonDialog sollte sich ergeben. Leider konnte ich keine hinreichende Erklärung finden, was denn bitte alles anzupassen ist.

In den MSDN-Dokus steht nur, dass die Methoden Reset() und RunDialog() zu implementieren wären. Hm, was muss da rein? Irgendwie bin ich via Google auf eine Seite mit den Original-Quellen von Microsoft gekommen. Nach ca. einer viertel Stunde war mir klar, CommonDialog wird als Basisklasse für die Win32-Dialoge aus der user32.dll verwendet. In RunDialog sind dann alle Schritte zu definieren, um die Dll-Funktion korrekt zu initialisieren und auszuführen. Also ein Managed-Wrapper um Unmanaged-Code.

Somit bleibt mein Fazit: Dialoge lassen sich auch von einer WinForm ableiten und als Komponente in den VisualStudio-Designer integrieren.

Erstellen von Windows Hilfedateien

Das Erstellen von Windows-Hilfedateien gestaltet sich recht einfach, wenn alle Dinge beisammen sind. Mit etwas google’n werden allerhand Hinweise auf freie und kommerzielle Tools angeboten.

Software die Notwendig ist:

  • Windows HTML Helpcompiler, bereits im SDK enthalten oder bei Microsoft kostenlos zu haben.
  • HTML-Editor der Wahl, es gehen meist auch die Textprogramme von LibreOffice / OpenOffice und Microsoft Office
  • Bildbearbeitungsprogramm fürs Aufbereiten eventuell zu verwendender Bilder, z.B. Inkscape, Gimp oder Acorn.

Informationen wie die Dinge zusammenwirken gibt es auf:

Wenn die erzeugte Datei dennoch nicht dargestellt wird gibt’s einen Tipp:

Damit sollte es gehen ;).