C# Fenster maximiert lassen | Doppelklick Titelbar ignorieren

BaseUser

Ensign
Registriert
Feb. 2005
Beiträge
200
Hallo,

ich habe ein kleines Problem mit einer Visual C# Anwendung: Das Fenster soll maximiert starten (kein Problem), und dann auch maximiert bleiben.

Allerdings lässt sich bisher, trotz Ausblenden der entsprechenden Buttons, das Feld per Doppelklick auf die Titelleiste aus der Verankerung werfen.

Gibt es hierfür eine Lösung, eventuell im Designer von Visual Studio 2010?

Grüße

BaseUser :)
 
Das geht nicht ohne weiteres da das Fenster von Windows erzeugt und angezeigt wird und dieses das kontrolliert, nicht dein Programm selbst.

Weiß grad nichtmal ob das überhaupt geht.
 
MaximizeBox im Designer auf false setzen. Reicht bei mir völlig aus.
MaximizeBox_CSharp.png
 
Zuletzt bearbeitet:
Wow... danke erst mal für die schnellen Antworten :)

Wpf oder WinForms?

Tschuldigung - Windows Forms :)

Ich würd sonst sagen einfach das Doppelklick-Event abfangen?

Hm, ich glaube, dass ist gar nicht so einfach. Bei Doppeklick auf die Titelleiste im Designer wird lediglich ein LoadEvent im Code generiert.

Das geht nicht ohne weiteres da das Fenster von Windows erzeugt und angezeigt wird und dieses das kontrolliert, nicht dein Programm selbst.

Weiß grad nichtmal ob das überhaupt geht.

Hm, da tendiere ich langsam auch dazu... auch Nachsehen bei Google hat keine brauchbaren Ergebnisse geliefert.

MaximizeBox im Designer auf false setzen. Reicht bei mir völlig aus.

Bist du sicher, dass man dann das Fenster mit einem Doppelklick auf die Titelleiste nicht aus der Verankerung reist?
 
Wie wäre es einfach die Titlebar zu verstecken.

"FormBorderStyle = None"
 
@BaseUser
Im Designer selbst afaik nicht, aber du kannst natürlich die WndProc Methode der Form überschreiben und das rausfiltern was dir nicht in den Kram passt.
In deinem Fall WM_SYSCOMMAND (teilt dem Fenster Kommandos wie schließen, minimieren, maximieren, usw. mit):
Code:
protected override void WndProc(ref Message m)
{
    if (m.Msg != (int)WM.SYSCOMMAND)
    {
        base.WndProc(ref m);
    }
}

Hier gibts eine Liste aller Windows Messages: WindowsMessages (Enums)



@Darktrooper1991
Nö das reicht nicht, man kann die Fenstergröße/Position immernoch per Doppelklick auf die Titelleiste, per Drag N Drop, oder mittels verschiedener Hotkeys verändern.



IC3HANDS schrieb:
da das Fenster von Windows erzeugt und angezeigt wird und dieses das kontrolliert, nicht dein Programm selbst.
Das stimmt so nicht. Windows teilt dem Fenster nur mit, was es machen soll. Ob das Fenster (bzw. der Code der dahinter steckt) das dann auch umsetzt ist Windows meistens ziemlich egal.
 
Also bei mir reichts, wenn ich MaximizeBox auf false setze(für den Doppelklick auf die Leiste).
Für den Resize per Ziehen der Ränder einfach FormBorderStyle auf "FixedSingle"
Jetzt kann man es nicht mehr vergrößern/verkleinern
 
Zurück
Oben