Laden...

ScrollableControl mit Custom Scrollbar

Erstellt von ViperNeo vor 11 Jahren Letzter Beitrag vor 11 Jahren 2.823 Views
V
ViperNeo Themenstarter:in
352 Beiträge seit 2008
vor 11 Jahren
ScrollableControl mit Custom Scrollbar

Hallo Leute,

ich suche seit Tagen verzweifelt nach einer Lösung und komme einfach nicht voran. Jeder kennt sicher das Panel und seinen AutoScrollMode. Die Scrollbars sind auch im Designer in einer NonClientArea im Control, heißt die ClientArea wird anscheinend automatisch verkleinert um für die Scrollbars Platz zu schaffen.

Ich möchte nun eigentlich genau diese Funktion nutzen, allerdings meine eigenen Scrollbalken nutzen. Panel und Scrollbalken sind fertig, allerdings kann ich sie derzeit nur manuell an die enstprechende Position schubsen und dadurch das sie im normalen ClientRectangle drin hängen erreicht man nie 100%ig die rechte untere Ecke da die Scrollbalken einen Teil des Bereichs einnehmen...

So, nun habe ich mit WM_NCCALCSIZE etc. rumgespielt und habe es auch geschafft das ich einen kleinen Teilbereich des Panels als NonClientArea habe. Hier kann ich jedoch die Scrollbars nicht reinschubsen....

Kennt jemand eine Lösung für dieses Problem? Wäre super wenn jemand einen Tipp hätte.

Danke!

Grüße
viperneo

49.485 Beiträge seit 2005
vor 11 Jahren

Hallo ViperNeo,

als ich damals vor einem ähnlichen Problem stand, war das Size vs. ClientSize bei eigenem Control meine (möglicherweise falsche) Schussfolgerung. Wenn ich dich richtig verstehe, ist dir gelungen, die ClientArea beliebig zu verkleinern. Kannst du mal deinen Code posten?

herbivore

V
ViperNeo Themenstarter:in
352 Beiträge seit 2008
vor 11 Jahren

hm, suche es gerne morgen mal raus, allerdings direkt kontrolliert ob der clientsize wert auch kleiner wird habe ich jetzt noch nicht. grundsätzlich zeigt er allerdings eine non-client-area an die ich seperat bepainten kann. habe aktuell nur noch das problem das beim resize des controls die nca ab und an verschwindet .... glaube das problem ist nahezug nicht lösbar ohne ein subpanel im eigentlichen user control... echt ärgerlich.

49.485 Beiträge seit 2005
vor 11 Jahren

Hallo ViperNeo,

was stört dich an einem Subpanel? Damit würde man die Überlappung doch verlässlich vermeiden können und man hätte einen Mechanismus, den man - so wie es aussieht - leichter beherrschen kann, als die Unterteilung in ClientArea und Non-ClientArea.

herbivore

V
ViperNeo Themenstarter:in
352 Beiträge seit 2008
vor 11 Jahren

eigentlich stört mich hier nur der generierte designer code und wenn man ehrlich ist ist der reiz das es doch irgendwie anders möglich sein muss einfach da^^ handelt sich nicht um ein kundenprojekt, daher spiele ich da halt etwas rum. naja, glaube ich werde die subpanel lösung ausarbeiten, ist wohl der weg mit dem geringsten widerstand 😉

49.485 Beiträge seit 2005
vor 11 Jahren

Hallo ViperNeo,

trotzdem könntest du noch deinen Ansatz mit mit WM_NCCALCSIZE posten, möglichst short but complete. Zum einen für die Nachwelt, zum anderen findet sich vielleicht jemand, der das Problem sieht oder mit dem Code spielt und eine Lösung findet.

herbivore

49.485 Beiträge seit 2005
vor 11 Jahren

Hallo ViperNeo,

hast du es schon mal mit Control.DisplayRectangle-Eigenschaft probiert? Siehe auch UserControl mit beschränktem Child-Bereich.

herbivore