Buttons an Auflösung anpassen?


Christoph1972

Erfahrenes Mitglied
Hallo,

ich habe einen MDI-Container in dem auf dem oberen Rand Buttons platziert. Mit diesen Buttons werden dann die Children aufgerufen. Das klappt so weit.
Nun möchte ich, das wenn jemand den Container in der Größe ändert, die Buttons an der selben Position bleiben und sich von der Größe passend angleichen. Also, wenn der Container um z.B. um 20% vergrößert, verkleinert wird das dann die Buttons auch 20% kleiner oder größer werden.
Kennt jemand eine Seite wo so etwas genau beschrieben wird? Ich habe zwar schon was gefunden, auch Tipps von hier, aber das ist alles sehr kompliziert, wie ich finde. Mich wundert es eh, das es so kompliziert ist es so einzurichten, da es doch für den User das selbstverständlichste überhaupt ist. Der Quellcode für diese Option wird länger und komplizierter als das eigentliche Programm.
Ich habe mal ein Screenprint von dem Programm angehängt damit ihr sehen könnt was ich genau meine.

Gruß

Der fragende hoffentlich nicht nervende Christoph
 

Anhänge

JensG

Erfahrenes Mitglied
Hallo Christoph,

so kompliziert ist das ganze gar nicht. Versuche doch mal die Klasse in diesem
Thread
einzubinden.
Damit werden alle Controls in deinem Formular angepasst.
Das Implementieren der Klasse ist nicht so schwer und was sie genau macht sollte aber muss dir ja nicht klar sein :)
Probiers mal aus und melde dich wenns nicht klappt.

Jens
 

Christoph1972

Erfahrenes Mitglied
Hi Jens,

ich werde es mal probieren, sieht aber für mich "noch" sehr kompliziert aus. Ich habe mir den Thread schon mal angeschaut, mich dann aber nicht daran getraut ;-) Ich bin in der .Net Programmierung noch nicht so weit das ich Klassen benutze, benutzen kann. Ich bin immer noch ganz am Anfang, aber langsam finde ich gefallen an der VB.Net Programmierung . Irgend wann bekomme ich das bestimmt auch hin! Diese Funktion wäre dann aufwendiger als das ursprüngliche Programm :)
Aber trotzdem 1000 * Danke


Gruß

Christoph
 

JensG

Erfahrenes Mitglied
Hallo Christoph,

habe mal nen kleines Beispiel angefertigt das die Nutzung
der Klasse verdeutlicht. Eigentlich ganz einfach und auf
alle Forms im Projekt anwendbar.

Jens
 

Anhänge

Christoph1972

Erfahrenes Mitglied
@Ingo

Sauber, genau so meinte ich das! Ich werde mich mal einlesen, dann verstehe ich auch bestimmt wie das funktioniert.

Danke

@Norbert

Mit anchor und dock, bekomme ich das so nicht hin, ich habe es schon über Stunden probiert und konnte das gewünschte Ergebnis einfach nicht erreichen.


Gruß

Christoph
 

JensG

Erfahrenes Mitglied
Norbert Eder hat gesagt.:
Ich würde es per Dock und Anchor lösen. Kein zusätzlicher Code und daher weniger fehleranfällig.
Hallo Norbert,
an deinem Wissen und deiner Erfahrung zweifele ich ganz sicher nicht aber erkläre mir mal bitte wenn du die Grafik von Christoph im ersten Posting gesehen hast wie du das mit Dock und Anchor machst ohne vorher Usercontrols zu erstellen ?
Das Thema hatten wir ja schon mal. Am Anfang dachte ich auch das es super mit Dock und Anchor geht aber die Sache ist sehr eingeschränkt bzw. nicht so einfach auf die Standard Controls in NET anwendbar wie man es vermutet.
Das zusätzlicher Code mehr Fehlerpotential bietet ist völlig klar aber wenn du ne Klasse hast die seit längerer Zeit super funktioniert und in mehreren Projekten mehrfach genutzt wird dann kann man doch nicht wirklich von ner möglichen Fehlerquelle ausgehen oder ? Sonst bräuchte man wohl umfangreichere Sachen wohl gar net erst angehen.
Nix für ungut , das sollte nur mal meine Meinung zu Dock und Anchor sein.

VG aus dem wildem Osten
Jens
 

Norbert Eder

Erfahrenes Mitglied
Naja, ich hätte dafür vermutlich auch ein TabControl verwendet, dann hätt ich schon mal das halbe Problem gehabt. Für den Rest kann man sich noch ein paar Dinge mit Panels etc. einfallen lassen.

Trotzdem find ichs cool, dass du deinen Code anderen zur Verfügung stellst und je öfter er im Einsatz ist, desto sicherer wird er arbeiten (Fehler fallen dann schneller auf *g*).

Hier treffen einfach unterschiedliche Arbeitsweisen (das betrifft nicht nur die Programmierung, sondern auch die Gestaltung der GUI) aufeinander, daher sicherlich auch die unterschiedlichen Auffassungen. Ich persönlich hab zum Beispiel auch mit eigenen Usercontrols kein Problem, Hauptsache sie tun was ich will und sind nicht von einem Designer im Photoshop designed, so ne Umsetzung mach ich auch nimma so schnell.

Und bei gewissen Posts von mir nicht bös sein, ich will manchmal lediglich auf andere Möglichkeiten (sowohl Design, als auch Umsetzung) hinweisen ...
 

Christoph1972

Erfahrenes Mitglied
Norbert Eder hat gesagt.:
Trotzdem find ichs cool, dass du deinen Code anderen zur Verfügung stellst und je öfter er im Einsatz ist, desto sicherer wird er arbeiten (Fehler fallen dann schneller auf *g*).
@Jens
Sag mal, ist das ein selbst geschriebener Code, oder hast Du ihn selbst mal bekommen? Oder ist es ein öffentlicher Code?


@All
Mich wundert es, das so eine Funktion nicht in VB.Net per Button integriert ist und z.B. vom MDI-Containern vererbt werden kann, da es doch für den software user das normalste auf der Welt ist die Größe der Anwendung beliebig zu ändern. Schön wäre wenn diese Funktion als Plugin oder so verfügbar wäre.


Gruß

Christoph
 

Norbert Eder

Erfahrenes Mitglied
Hmm .. vielleicht bekommen wir ja noch eine Diskussion in Richtung GUI-Design hin :)

Ich zB würde mein "Menü" nie so anordnen wie du. Daher hätte ich das ganze Button-Anpass-Problem gar nicht. Zudem ist vom User seltenst gewünscht dass sich die Button-Größe ändert. In deinem Fall geht es nicht anders, weils sonst total unübersichtlich wirkt wenn sie sich nicht anpassen. Daher sag ich jetzt einfach mal, dass es nicht userfreundlich entworfen ist.

Versuch dir ein sauberes GUI-Design zu überlegen und du hast die Probleme nicht. Es macht keinen Sinn, alles komlett mitzuvergrößeren. Wenn ich mir deine Maske auf 1600x1200 anzeigen lass, werd ich vermutlich durch die Buttons erschlagen :) Und nachdem eigentlich von Microsoft erwartet wird, dass man sich an deren Standard bezgl. GUI-Design hält (zwecks Zertifizierung der Anwendung etc.) wird es vermutlich eine derartige Funktion auch nicht geben bzw. gibt es sie jetzt nicht.

Wovon erwartet sich ein User, dass es sich mit der Größe des Fensters anpasst?
Ich denke hier geht es vor allem um Multiline-Textboxen, Zeichenflächen, ListBoxen, TreeViews und derartiges. Das Anpassen der Schriftgrößen etc. ist natürlich auch ein wichtiger Faktor, aber darauf sollte schon im GUI-Design eingegangen werden.

Das Designen einer Oberfläche ist keine leichte Aufgabe da Geschmäcker nun einmal verschieden ist - das ist auch gut so. Ich würde mir hier einfach angucken, wie das Microsoft und sämtliche andere "großen" Firmen das machen, da werden sich für gewöhnlich keine Buttons in der Größe ändern :)

Nun gut, genug des Senfes ... kommt eh nicht an bei euch ;)
 

Christoph1972

Erfahrenes Mitglied
Hi,

ich denke schon das dass Menü so benutzerfreundlich und übersichtlich ist. Das Feedback von den Usern war bisher nur positiv, du warst der erste dem es nicht gefiel:)
Mit den Buttons wird man nicht erschlagen, da ich eine min Größe von 800*600 und eine max Größe 1280*960 vorgegeben habe. Bis 1280*960 mal Standart ist, habe ich sicher eine neue Version erarbeitet, in der deine Anregungen sicher berücksichtigt werden.

Lg

Christoph
 

Norbert Eder

Erfahrenes Mitglied
Ich will deine Arbeit ja nicht schlecht machen - also nicht falsch verstehen. Sehe dies nur als Anregungen.

So könnte man die Menüpunkte als reines Menü, oder über eine Toolbar etc. abbilden. Dann hast es - was eben genau solche Themen betrifft - ein wenig leichter. Ansonsten ists eh ok und wenn die User damit zufrieden sind, warum ändern - da hast schon recht.