Laden...

Panel + Objekte verschieben geht, bis Scrollbar benutzt wird

Erstellt von Martinar vor 12 Jahren Letzter Beitrag vor 10 Jahren 2.768 Views
M
Martinar Themenstarter:in
55 Beiträge seit 2010
vor 12 Jahren
Panel + Objekte verschieben geht, bis Scrollbar benutzt wird

Hallo Comunity,
ich versuche gerade aus diesem Tutorial:

[Tutorial] Gezeichnete Objekte mit der Maus verschieben

Noch eine Scrollbar einzubauen.
Aber nun nach 1 1/2 Tagen bin ich nun komplett verwirrt.

Auf der Zeichnung sieht man mein Problem.
Solange die Scrollbar nicht verwendet wird, stimmen die X und Y Koordinaten für das Objet. Aber wenn ich die Scrollbar benutze ,schaffe ich es nicht im OnPaint die Scrollbar-Werte zur bestehenden Location zu addieren.

Ich habe mir die Tutorials von herbivore und progger durchgelesen.
Aber bei dem Tutorial von ErfinderdesRades laufe ich dann komplett gegen die Wand.

Mein Ziel ist folgendes:
Sobald ich eine Object erschaffe und es über _canvas(Fläche der Zeichnung) ziehen möchte, soll die Scrollbar erstellt werden und die Zeichenflache soll um die nötige Fläche erweitert werden und im OnPaint-Event sollen die bestehenden Objekte um die nötigen Koordinaten erweitert werden, so dass der Fehler im Bild unmöglich wird.

Ich hoffe ihr könnt mir helfen...

Gelöschter Account
vor 12 Jahren

Und was für ein Fehler ist im Bild zu sehen und warum hast du ein Problem die Scrollbarwerte zu den Grafischen Objekten hinzuzufügen?

M
Martinar Themenstarter:in
55 Beiträge seit 2010
vor 12 Jahren

Dort wo das Wort Cursor steht, könnte ich das Rechteck bewegen, aber das ist ja falsch.
Wie gesagt, meinen Gedanken sind leider nur noch eine breiartige Masse.

Wo und wie muss ich anfangen, die Werte für das Object zu sichern?

C
23 Beiträge seit 2006
vor 10 Jahren

Hallo zusammen,

ich muss dieses Thema mal erneut hervorheben, da ich ein sehr ähnliches Problem habe.

Ich haeb ein Panel, in dem ich mit Hilfe von setBounds(50,50,50,50) ein Label einzeichne. Dieses Panel ist jedoch größer als das Forms-Fenster, so dass automatisch Scrollbalken angezeigt warden.

Das Label wird mit Hilfe eines Timers alle Sekunde mit einem neuen Wert versehen und mit Hilfe von setBounds(x,y,z,w) eine neue Position zugeordnet.

Wenn ich nun das Panel mit Hilfe der Scrollbars verschoben habe, dann wird das Panel immer im sichtbaren Bereich positioniert, obwohl ich dies nicht möchte. Sondern die Koordinaten im Panel sollen Fest hinterlegt sein und immer an der selben Stelle sein, sodass ich beim zurückschieben mit Hilfe der Scrollbar wieder das Label sehe.

Schwierig zu beschreiben, aber ich hoffe Ihr könnt mir helfen.

Dankeschön!

Wir müssen wissen wo wir stehen, damit wir wissen wo wir hin müssen...

4.844 Beiträge seit 2008
vor 10 Jahren

Du mußt bei Positionen in einem ScrollableControl (z.B. Panel) immer die AutoScrollPosition-Eigenschaft beachten (d.h. dazuaddieren).

49.485 Beiträge seit 2005
vor 10 Jahren

Hallo Champ88,

verwende kein Label, sondern zeichne den Text wie in [Tutorial] Zeichnen in Windows-Forms-Programmen (Paint/OnPaint, PictureBox) beschrieben.

Dabei musst du beachten, was Th9 gesagt hat, siehe auch Panel-Autoscroll ohne Controls [==> korrekt in das gescrollte Panel zeichnen].

herbivore

C
23 Beiträge seit 2006
vor 10 Jahren

Leute, ihr seit die Besten!

Vielen Dank, es funktioniert.

Wir müssen wissen wo wir stehen, damit wir wissen wo wir hin müssen...