Forum: PC-Programmierung VB.net 2010 - Usercontroll per Maus Resizen


von Tim S. (Firma: tsx89) (freak_ts) Benutzerseite


Angehängte Dateien:

Lesenswert?

Hallo GUI-Spezialisten,
habe wieder mal ein kleines Mathematik Problemchen: Ich benötige für ein 
GUI eine Art Container / Panel oder Usercontrol das "inheritable" ist, 
und sich per Maus Resizen (und Draggen) lässt. Eigentlich ganz einfach - 
dachte ich, und habe mich nach entsprechenden Beispielen umgesehen, 
allerdings ohne Erfolg. Dann begann ich selber eine Usercontrol zu 
basteln, und komme nun mit diversen Situationen des Resizen´s noch nicht 
zurecht. Das Resizen nach 'Unten' und nach 'Rechts' sind kein Thema, 
auch diagonal nach 'Unten+Rechts' klappt ganz gut, und ist sehr Simpel. 
Nur die Richtungen 'Oben' und 'Links' und die restlichen Diagonalen 
bekomme ich nicht sauber und anständig hin, wie man das von üblichen 
Resize-Methoden kennt oder erwartet. Mein bisherigen angefangenen Test 
habe ich mal angehängt - Er ist von der Struktur her bestimmt nicht 
optimal, und die Comments etc sind nicht ganz korrekt... ;-) Es geht um 
den grauen Kasten namens 'SizeableDraggable', dessen Kanten und Ecken 
mit einer Resize-Funktion ausgestattet werden sollen.

Vielleicht hat ja jemand von euch schon einmal so eine Usercontrol 
gebastelt, und kann mir diese zur Verfügung stellen, oder mir ein gutes 
(Code-) Beispiel (aus dem Netz) Posten, oder mir auf die Sprünge helfen 
!?

Ich danke euch schon mal für die Mühen!

Gruß TS

von Tim S. (Firma: tsx89) (freak_ts) Benutzerseite


Angehängte Dateien:

Lesenswert?

Habe es nochmal überarbeitet, aber sauberer bekomme ich es 
komischerweise nicht hin. Wenn mir jemand dabei helfen könnte, diese 
Ruckler und Zuckerer heraus zu bekommen, sowie paar Bugs zu beseitigen 
wäre ich sehr dankbar. Ich bin mit meinen Kenntnissen am Ende, und weiß 
diesbezüglich nicht mehr weiter. Und Nein - Ich möchte kein WPF 
verwenden. ;-)

Timmey S. schrieb:
> eine Art Container / Panel oder Usercontrol das "inheritable" ist,

Bestimmt wäre eine Class, die sich auf alle Controls anwenden lässt, 
besser.
Mir fehlt allerdings der Richtige Ansatz um das sauber zu lösen. 
Eventuell weiß einer von euch weiter !?

Gruß, TS

von christoph (Gast)


Lesenswert?

hast Du das mal auf einem anderen Rechner ausprobiert?
ich habe jetzt gerade mal das obere Projekt gedownloaded und das läuft 
ohne ruckeln und zuckeln...

was genau stört Dich nun? der unübersichtliche code? ruckeln welches du 
bei dir auf dem PC hast? die übersicht in der SizeableDraggable.vb?

von Tim S. (Firma: tsx89) (freak_ts) Benutzerseite


Lesenswert?

Dankeschön für deine Rückmeldung. Habe es gerade an einem anderen PC 
getestet der etwas schneller ist. Dort läuft es wirklich besser. Dennoch 
hat das ganze noch nicht wirklich viel mit einer ordentlichen 
Resize-Funktion zu tuhen.

christoph schrieb:
> habe jetzt gerade mal das obere Projekt gedownloaded

Das obere war so weit fertig "implementiert", dass das Resizen an den 
äußeren Kanten unten und rechts läuft (Dort, wo man "normalerweise" 
Resized), die anderen Seiten waren (noch) ohne Funktion, da sich das 
Framework merkwürdig verhalten hatte, und ich den Code-Part wieder 
entfernt hatte. Wenn man die Version aus dem zweiten Post nimmt, und 
z.B. diagonal oben links Resizen will, kommen ständig Ruckler und Patzer 
/ bzw. Fehler, die ich leider nicht beseitigen kann. Mein Ziel ist, 
Controls ähnlich handhaben zu können, wie im Design-Mode der IDE.

Ich habe gerade die Glyphs-Klasse gefunden, die genau für diesen Zweck 
ziemlich interessant ist. Allerdings gibt es die (anscheinend) erst seit 
dem 4.5er Framework, dass ich nicht benutzen kann.

Wenn jemand versteht und nachvollziehen kann was ich meine, und jemand 
eine Lösung zur Hand hat, wäre ich wirklich dankbar !!! ^^

Gruß, TS

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Timmey S. schrieb:
> Das Resizen nach 'Unten' und nach 'Rechts' sind kein Thema, auch
> diagonal nach 'Unten+Rechts' klappt ganz gut, und ist sehr Simpel. Nur
> die Richtungen 'Oben' und 'Links' und die restlichen Diagonalen bekomme
> ich nicht sauber und anständig hin

'Oben' und 'Links' sollten das gleiche sein wie 'Unten' und 'Links' -- 
allerdings kombiniert mit einem vorher stattfindenden Verschieben des 
gesamten Fensters nach Oben bzw. Links.

Das aber ist nur relevant, wenn die im Fenster enthaltenen Elemente ihre 
Positionen nicht relativ zum enthaltenden Fenster, sondern absolut 
beziehen.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.