Autoscrolling



  • Hallo, ich habe folgendes Problem
    Ich habe ein UserControl gebaut auf welchen ein Panel mit DockStyle.Fill liegt.
    dieses Panel hat AutoScroll enabled. D.H. mein UserControl ist ausschlaggebend für die eigentliche Größe, wird im inneren Panel nun ein weiteres Control ausserhalb der Maximalgröße eingefügt, kann ich also Scrollen. Das funktioniert soweit ganz gut, nun das Problem.
    Wenn ich scrolle, verschieben sich alle bereits eingefügten Controls um die aktuelle Scrollposition. D.h. ein Control bei 0,0 einfügen und dann um 20 einheiten in X-Richtung weiterscrollen führt dazu dass das Control nun die Position -20,0 hat. Da ich aber das Control dynamisch befülle bzw sogar zur Laufzeit erlaube die Controls zu verschieben, nützt mir das so nix. Wie krieg es nun am einfachsten hin das ich
    1.) Die Scrollbalken immer noch erscheinen wenn ich neue Controls im inneren Panel anfüge, es aber den Rahmen des Panels sprengt.
    2.) Egal wohin ich Scrolle die absoluten Positionen immer gleich bleiben.



  • Hallo,

    an den Koordinaten kannst du nichts ändern. Du mußt einfach beim dynamischen Hinzufügen oder Verschieben die aktuelle Scrollbar-Position (AutoScrollPosition) berücksichtigen.



  • Besten Dank, hab gestern noch eine alternative herausgefunden, diese wäre aber auch etwas aufwendiger. Ich könnte das eigentliche UserControl auch auf AutoScrollable setzen und das innere Panel händisch von der Größe neu Berechnen. Dies müsste ich halt jedes mal beim Verschieben von Controls machen. Damit wären die positionen Fix. Der Aufwand aber auch etwas höher.


Log in to reply