Laden...

Definierten Clientbereich scrollen (Panel)

Erstellt von amozi vor 18 Jahren Letzter Beitrag vor 18 Jahren 1.707 Views
A
amozi Themenstarter:in
120 Beiträge seit 2005
vor 18 Jahren
Definierten Clientbereich scrollen (Panel)

Hallo,

ich bin jetzt einige Zeit dabei ein Panel-Control für einen bestimmten Bereich zurückscrollen zu lassen, was mir letzt endlich noch nicht gelungen ist.
Ich benutze die Eigenschaft 'AutoScrollMinSize' und setze die X-Koordinate mit der Grösse des Scrollbereichs.
Was mache ich da falsch? Würde mich freuen wenn ich paar Tipps bekommen könnte.

Danke
amozi

4.221 Beiträge seit 2005
vor 18 Jahren

Meinst Du so was ?

xy.AutoScrollPosition=new Point(0,0);

Früher war ich unentschlossen, heute bin ich mir da nicht mehr so sicher...

A
amozi Themenstarter:in
120 Beiträge seit 2005
vor 18 Jahren

Hallo Programmierhans,

Nein, nicht so ganz. Nehmen wir an, wir haben einen Clientbereich von 800Pixel und eine Gesamtgröße von 2000Pixel. Wenn ich am Ende angelangt bin, also 1200 Pixel gescrollt wurde, möchte ich die Möglichkeit haben, nur einen bestimmten Bereich zurück zuscrollen. Zum Beispiel vom Ende bis zu Pixel 600 d.h. die ersten 600Pixel sind dann im Clientbeich nicht mehr ersichtlich.
(Ich bin immer noch auf der Suche nach einer geeigneten Vorgeweise.)

Danke

Danke
amozi

4.221 Beiträge seit 2005
vor 18 Jahren

xy.AutoScrollPosition=new Point(0,-600);

oder

xy.AutoScrollPosition=new Point(0,600);

Findest Du ja schnell raus ...

Früher war ich unentschlossen, heute bin ich mir da nicht mehr so sicher...

A
amozi Themenstarter:in
120 Beiträge seit 2005
vor 18 Jahren

Hallo Programmierhans,

ich glaube das ich die Problematik wiederum nicht ausreichend erläutert habe. Und zwar soll die ersten 600Pixel überhaupt nicht scrollbar sein. Der gepostete Code von dir setzt einfach die Bildlaufleiste an die angegebene Position.
Ich will das bei der angegeben Position die Bildlaufleiste auch am Anschlag ist und eine Verschiebung zwischen 600-2000 ermöglicht.

Danke im voraus für die Tipps.

Danke
amozi

I
1.739 Beiträge seit 2005
vor 18 Jahren

Um mal die Angaben von Programmierhans zu vervollständigen:


    Point _lastPos = new Point(0,0);
    private void panel1_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
    {
      if(_lastPos.X < panel1.AutoScrollPosition.X && panel1.AutoScrollPosition.X > -600)
      {
        Point pt = new Point(0, AutoScrollPosition.Y);
        pt.X = 600;
        panel1.AutoScrollPosition = pt;
      }
      _lastPos = panel1.AutoScrollPosition;
    }

Einmal über 600 gescrollt wird beim zurückscrollen geprüft...

Zur Bildaufbauleiste: wäre dann wohl sinnvoll ein eigenes Control zu erstellen.

Ich frag mich aber wozu das ganze gut sein soll.