Elemente in einem Dialog grupieren, ein/ausklappbar



  • Hallo Zusammen,

    ich stecke wiedermal in einer Machbarkeitsstudie und würde gerne wissen ob sowas möglich ist und wie.

    und zwar habe ich einen Dialog, der auf der linken Seite einige Comboboxen und eine Treeview mit Elementen hat. Auf der rechten Seite gibt es einen Unterdialog, welchen man auch scrollen kann. Auf diesem gibt es Edit-Felder, Comboboxen und Listboxen. In diesen stehen die Eigenschaften der Elemente.

    Da diese Eigenschaften nun ziemlich groß geworden sind und man nicht immer alle braucht, soll ich herausfinden ob es möglichkeiten gibt einige oder alle elemte davon nur bei Bedarf auszuklappen. Das ganze soll ähnlich wie hier aussehen:
    http://dl.dropbox.com/u/573207/4Web/PropertiesDlg.jpg

    Ich kann die PropertyList nicht nehmen, da diese keine eigenen Controls darstellen kann, oder täusche ich mich da?

    Gibt es andere Möglichkeiten wie ich das bewerkstelligen kann, hat da einer eine Idee?

    Gruß
    Jack



  • schau doch einfach mal auf codeproject.com/, da sollte sich doch was finden lassen oder zumindest inspirationen



  • Ja, die Seite kannte ich auch schon, habe da bereits gesucht, heute nochmal einen ganzen Tag aufgewendet um dort nach einer Lösung zu suchen, finde aber nichts was ich verwenden kann.
    Das einzige was mir etwas entgegen kommt, ist dass ich VerticalTabbedDialog benutzen könnte, darf ich aber nicht, da im zweifelsfall alles ausgeklappt werden können soll...
    Irgendwie habe ich die Befürchtung dass ich da was neues imlementieren muss, weis aber nicht genau wo ich da anfangen soll, Unterdialoge würde ich am liebsten versuchen zu vermeiden, da zuviel arbeit, sondern dynamische Plazierung der Controls verwenden und den Dialog bei Bedarf größer und kleiner machen, weis aber nicht wie ich das am besten anpacke und eine generelle Klasse dafür erstelle...


  • Mod

    Und Du hast auch das gefunden?
    http://www.codeproject.com/KB/dialog/dlgexpand.aspx

    Ansonsten ist das Handgemacht auch simpel:
    Die Start ID nehmen des Controls, evtl. GetNextDlgGroupCtrl.
    Die Größe bestimmen zwischen erstem und letztem Control.
    MoveWindow ausführen.
    Die Control von hidden auf shown, und von enabledauf disabled setzen und das war es.



  • Doch, das habe ich gefunden und auch angeschaut, funktioniert zwar nicht schlecht, aber eben nur mit den untersten Elementen, was ist aber wenn ich Elemente mittendrinn ausblenden will?
    Aber stimmt, deine Idee ist gt, da kann ich dann mit GetNextDlgCtrl und GetNextDlg Group arbeiten... müsste man ausprobieren...


  • Mod

    Dann würde ich Child-Dialogs bauen für jede Gruppe. Die lassen sich geschlossen verstecken und disablen.
    Auch das Größen-Bestimmen ist leichter...

    Auch zu Child-Dialogsa findest du passenden Code, bei Codeproject.



  • Nach langen Suchen und probieren bin ich schlußendlich auf den TaskPanel von CodeJocks Toolkit gekommen. Da kann man links, eigene Controls und sogar Dialoge einfügen die dann mit Animation ein/ausgeklappt werden.
    Zum Glück haben wir dieses Toolkit im Hause und ich darf es einsetzen.
    Falls es jemanden auch interessiert: http://codejock.com/products/taskpanel/

    Vielen Dank für die Holfestellung znd Vorschläge!


Anmelden zum Antworten