Windows Form - Text mittig einstellen

  • C#

Es gibt 26 Antworten in diesem Thema. Der letzte Beitrag () ist von Winchester.

    @Winchester Willkommen im Forum. :thumbup:
    Die Titelzeile gehört Windows, da kannst Du (zunächst) nix tun (außer alles selbst zu programmieren).
    Andere Texte kannst Du in Controls packen, diese per .Anchor oder .Dock in der Form zentrieren und in diesen dann den Text zentriert ausgeben.
    RichTextBox:
    VB.NET RICHTEXTBOX Formatierung (mit Leerzeichen auffüllen)
    Label:

    Quellcode

    1. .AutoSize = False
    2. .TextAlign = MiddleCenter
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Sowas macht man standardmäßig über den Designer. Control wählen und Einstellungen setzen. Was sehen wir in Post#1? Effektiv nix. Welches Control soll also mit zentriertem Text sein?
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Vollzitat des direkten Vorposts an dieser Stelle entfernt ~VaporiZed

    Also ich möchte den Title Bar bei der Forms mittig haben. Also da soll dann wenn ich die Forms starte, "Forms1" nicht linkszentriert sein sondern mittig.


    //edit: ich habe eine Lösung gefunden, man kann ja in den Einstellungen paar leerzeichen einfügen, sodass "Forms1" nach rechts verschoben wird. Damit hat sich meine Frage geklärt

    So sollte es aussehen:

    Gibt es auch ne andere Möglichkeit dies zu lösen? Darf man etwa nicht zitieren?

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Winchester“ ()

    Winchester schrieb:

    Darf man etwa nicht zitieren?
    Lesen bildet:

    RodFromGermany schrieb:

    Die Titelzeile gehört Windows, da kannst Du (zunächst) nix tun (außer alles selbst zu programmieren).
    Da Du ein Anfänger bist, solltest Du Dich zunächt mit etwas trivialeren Sachen beschäftigen, um mit .NET warm zu werden:
    [Sammelthread] Programmieren, aber was? (Programmideen)
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    Boardregeln schrieb:


    f) Das vollständige Zitieren von Beiträgen ("Fullquotes"), die direkt über dem eigenen stehen, ist völlig unnötig und daher nicht erlaubt. Auch wenn sich dazwischen schon mehrere Beiträge befinden, sollte man nur das zitieren, was unbedingt erforderlich ist. Gerade sehr große Voll-Zitate schaden der Übersicht enorm.


    Bzgl. Deiner "Lösung": Verändere die Formgröße und die Zentrierung ist hinüber.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Nach 1h Recherche gebe ich mit dem zufrieden, was ich in Erfahrung gebracht habe.

    Wenn ich den Title Bar mit Hilfe von Leerzeichen in Richtung Mitte bewege und dann "FormBorderStyle auf FixedSingle mache und MaximizieBox auf False, müsste demnach keine Probleme auftauchen, da der User die Forms nicht auseinander ziehen kann oder es vergrößern kann, deshalb bleibt die Fixierung auch immer in der Mitte.
    Auch wenn das Form nicht mehr vom User in der Größe verändert werden kann, könnte dir die Windows-Größen-Einstellung(100%, 125% und 150%) einen Strich durch die Rechnung machen. Eine einfache Lösung wäre dann, eine eigene Titelbar zu machen und FormBorderStyle.None für's Form einzustellen. NonClientArea painting geht auch, das ist aber komplizierter. Der Code hinter dem Link von Dksksm wird ab Vista oder Win7 aufwärts nicht mehr funktionieren, denn da kam wenn ich mich recht erinnere DWM ins Spiel.

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Takafusa“ ()

    Naja, lernen tut mann am besten indem man sich das erarbeitet. Schwer ist es nicht. Am einfachsten machste dir ein UserControl, die Dock property überschreiben damit sie immer Top ist. Label drauf, autosize false, die Properties die RodFromGermany erwähnte nutzen, zusätzlich Anchor rechts hinzufügen(Left or Top or Right), 3 buttons für minimieren, maximieren und schliessen, evtl. noch eine PictureBox um ein Image anzuzeigen. Dann hast du schon die Leiste, aber ohne funktion.

    Kannst es einfach mal versuchen, sicher wird dir hier dabei geholfen. Aber hier einen fertigen Code zu bekommen, schätze ich als weniger wahrscheinlich ein.

    Winchester schrieb:

    da ich quasi bei 0 anfange aber aufgeben werde ich nicht


    Finde ich gut, so wirst du das lernen und irgendwann kannst du so etwas ohne Hilfe selbst machen. Ein Tipp noch, um ein UserControl zu machen, klicke in VS auf Projekt->Neues Element Hinzufügen dann Benutzersteuerelement (Winforms) auswählen. Das zurechtklicksen ohne den Code geht in 1 Minute. Wobei die Buttons rechts, brauchen wenn das Label Anchor Left|Top|Right hat, Anchor Top | Right, hatte ich nicht erwähnt.
    Bilder
    • Unbenannt.png

      5,29 kB, 1.035×530, 67 mal angesehen

    Winchester schrieb:

    Wenn ich den Title Bar mit Hilfe von Leerzeichen in Richtung Mitte bewege und dann "FormBorderStyle auf FixedSingle mache und MaximizieBox auf False, müsste demnach keine Probleme auftauchen, da der User die Forms nicht auseinander ziehen kann oder es vergrößern kann, deshalb bleibt die Fixierung auch immer in der Mitte.
    Gefällt mir nicht.
    Ich reg mich immer auf über so doofe Forms, die ich inne Grösse nicht verändern kann.
    Hingegen ob der Fenster-Titel links oder rechts ist, oder hinten drauf ist mir völlig wumpe - sowas nennich "Gimmick".
    Grad für Anfänger tätich Gimmik-Programmierung nicht forcieren - dassis oft knifflig und unlogisch und baut kein Grundlagen-Wissen auf.

    Ich find immer viel wichtiger, was denn nun im Fenster angezeigt wird - und da gibts auch jede Menge zu lernen - viele Nicht-Gimmickse.
    Wenn Du FormBorderStyle auf None machst, kannst Du ne TitleBar aus allen möglichen Controls gestalten. Ja, auch mit nem Panel (was aber nur ein Container ist, also selber wenig zeigt, sondern nur andere Controls aufnimmt).
    Oder eben FormBorderStyle auf FixedSingle, ControlBox auf False und Text leermachen.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „VaporiZed“ ()

    Winchester schrieb:

    Wäre es auch möglich ein Title bar mit Hilfe von einem Panel zu verwirklichen?
    Lies doch einfach mal durch, was Dir bereits geschrieben wurde:

    RodFromGermany schrieb:

    Label:

    Quellcode

    1. .AutoSize = False
    2. .TextAlign = MiddleCenter
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!