Laden...

Suche Control für eine bestimmte Kalenderdarstellung

Erstellt von Harry B. vor 12 Jahren Letzter Beitrag vor 11 Jahren 1.192 Views
Hinweis von herbivore vor 12 Jahren

Stellt euch vor, jeder, der einen solchen Thread aufmacht, nennt ihn "Suche passendes Control". Wie sollen dann andere Leute, die ein ähnliches Control suchen, die Forensuche vernünftig benutzen, wenn alle Treffer "Suche passendes Control" heißen? Passend für wen oder was? ==> Titel ergänzt/präzisiert. Denkt bei der Wahl der Titel bitte nicht nur kurzfristig und nicht nur an euch, sondern auch an die Nachwelt. Siehe [Hinweis] Wie poste ich richtig? Punkt 3.

H
Harry B. Themenstarter:in
33 Beiträge seit 2009
vor 12 Jahren
Suche Control für eine bestimmte Kalenderdarstellung

Für die Umstellung eines "etwas" betagten Programms, das in Visual Objects geschrieben wurde, suche ich nach dem passenden Control in C#. Ich habe einen Screenshot mit einer etwas ausführlicheren Beschreibung angehängt.

Das bisherige Verfahren war wenig objektorientiert und basierte auf einem CustomControl, das nur den Rahmen zur Verfügung stellte. Alles was darauf zu sehen ist, ist einzeln selbstgemalt. Richtige Objekte gibt es nicht. D. h., wenn man mit der Maus irgendwo hinklickt, ermittelt das Programm anhand der Mauskoordinaten, wo man hingeklickt hat. Dann untersucht es, welcher Bereich angeklickt wurde und ob ggf. eine Datenzelle erwischt wurde oder nicht etc. Das Ganze ist heute leider nur noch sehr schwer wartbar. Daher möchte ich es neuschreiben.

Ich hätte z. B. sowas Ähnliches wie ein DataGridView genommen, aber ich habe ja mehrere Zeilen mit Spaltenüberschriften, und außerdem machen mir die "frei über dem Gitter schwebenden" Datenzellen dabei Sorgen.

Bislang scheint mir das WinForms-Objekt 'Panel' geeignet zu sein. Eventuell kann man mehrere Panel-Objekte in- oder aneinanderbauen. In WPF scheint es so ein Control nicht zu geben, oder?

Mir würden ein paar Hinweise, welches Control ich in WinForms bzw. WPF nehmen sollte sehr weiterhelfen!

Vielen Dank im Voraus!

Gruß, Harry B.

Kaum macht man 's richtig, schon funktioniert 's!

4.939 Beiträge seit 2008
vor 12 Jahren

Hallo Harry,

da wirst du direkt kein passendes Control finden, sondern eines selber erstellen müssen (insbesondere wegen den Detailanforderungen).

Als Anregungen könnten aber andere Kalendercontrols dienen, wie
Optimierungsvorschläge für Scheduler-Control
Kalender Control
TimeChart

Als Basiscontrol (insb. für das Innere) kannst du dafür dann aber ein Panel benutzen, und dort dann in der OnPaint-Methode selber zeichnen.

Folgende Artikel solltest du dir unbedingt dazu ansehen:
[Tutorial] Zeichnen in Windows-Forms-Programmen (Paint/OnPaint, PictureBox)
[Artikel] Flackernde Controls und flackerndes Zeichnen vermeiden
[Artikel] Zeichnen Optimieren / Schnelles zeichnen
[Tutorial] Gezeichnete Objekte mit der Maus verschieben

H
Harry B. Themenstarter:in
33 Beiträge seit 2009
vor 12 Jahren

Danke für Deine schnelle Antwort, Th69!

Die Links zu den Kalender-Controls sind schon sehr hilfreich. Auch ist mir klar, dass ich da - wie bisher ja auch - selbst Hand anlegen muss.

Das Panel-Control unter WinForms habe ich durch die Beispiele schon bestätigt bekommen. Aber was würde ich unter WPF zweckmäßigerweise nehmen?

Gruß, Harry B.

Kaum macht man 's richtig, schon funktioniert 's!

6.862 Beiträge seit 2003
vor 12 Jahren

Hallo,

eine Entspruchung fürs Windows Forms Panel gibts in WPF schon, das Canvas Control triffts am ehesten. Aber gerade was so Layoutgeschichten angeht würde ich keinesfalls versuchen zwischen WPF und Windows Forms Parallelen zu ziehen und Probleme versuchen gleich zu lösen - das Layouting funktioniert in WPF fundamental anders und ist viel mächtiger. Daher muss man sowas in Windows Forms und WPF anders lösen um jeweils die Stärken der Technolgien zu nutzen.

Zu WPF:
Da gibts natürlich die verschiedensten Möglichkeiten. Kommt auch darauf an, wie die Daten strukuriert sind die du darstellst. Der untere Teil (die Liste der Einträge) ist prinzipiell am ehesten wohl nen ItemsSelector. Mit entsprechenden Templates für die Items kriegt man die Darstellung problemlos hin. Die Steuerzellen sind trivial. Sie würden nichts anderes machen als die Scrollfunktionen vom ItemsSelector aufzurufen. Die eigentlichen Scrollbars würde man einfach nicht anzeigen lassen. Die Kalenderzellen bekommt man auch mit den verschiedenen Layoutcontainern von WPF zusammengebastelt.
Ich sehe nichts was prinzipiell dagegen spricht. Die Variante mit selberzeichnen bliebe natürlich auch noch 😃

PS: Ich persönlich würde beim besten Willen nicht mit so einem Control arbeiten wollen. Die Usability ist grauenhaft. Vielleicht ergibt sich ja für euch die Chance bei der Migration da was zu verbessern.

Baka wa shinanakya naoranai.

Mein XING Profil.

H
Harry B. Themenstarter:in
33 Beiträge seit 2009
vor 11 Jahren

Leider hatte ich in den letzten Monaten keine Zeit mich um mein Control zu kümmern. Jetzt soll es weitergehen.

@tala:

Die Usability ist grauenhaft.

Was würdest Du grundsätzlich anders machen?

Ich habe den Screenshot neu hochgeladen, weil ich ihn etwas überarbeitet habe.

Vielen Dank für weitere Tipps!

Gruß, Harry B.

Kaum macht man 's richtig, schon funktioniert 's!