Event wenn Dialogfenster auf Monitorgröße ist

CopWorker

Erfahrenes Mitglied
Hallo,

gibt es in Windows Forms einen Eventhandler der mir mitteilt ob das
Dialogfenster über den Maximized Button der Menüleiste maximiert worden ist.
Und das selbe Spiel umgekehrt.
In den Events der Dialogeigenschaften finde ich nur was wenn sich die MaxSize ändert.
Die MaxSize des Dialogfensters habe und will ich nicht definieren.
Hat ja auch nichts mit der Monitorgröße zu tun.

Vielen Dank im voraus.
Grüße von CopWorker
 

CopWorker

Erfahrenes Mitglied
Hallo Zvoni,

so kenn ich das auch von C++ WinApi.

Ich versuch´s mit der Form.WindowState Eigenschaft von .NET.

Aber trotzdem vielen Dank an euch beide.

Grüße von CopWorker
 

Spyke

Premium-User
Stimmt Zvoni daran hat ich nicht gedacht, deine Idee finde ich sogar die schönere, einfach WndProc überschreiben und Nachricht abfangen.
 

CopWorker

Erfahrenes Mitglied
Hallo Spyke,

das mit "SizeChanged()" und die WindowState der Dialogklasse auf "Minimized" prüfen
funktioniert bestens.

Hier mein Quellcode, damit auch andere was davon haben.

C#:
private void Dlg_SizeChanged(object sender, EventArgs e)
        {
            if (this.WindowState == FormWindowState.Maximized)
            {
                btUnclasp.Visible = false;
            }
            else
            {
                btUnclasp.Visible = true;

                if (this.Size.Width <= this.MinimumSize.Width)
                {
                    btUnclasp.Text = ">>";
                    ttMainDlg.SetToolTip(btUnclasp, "Für weitere Eingabefelder sichtbar zu machen kann das Dialogfenster erweitert werden");
                }

                if (this.Size.Width >= iDefDlgWeithUnclasp)
                {
                    btUnclasp.Text = "<<";
                    ttMainDlg.SetToolTip(btUnclasp, "Für weitere Eingabefelder zu verbergen kann das Dialogfenster reduziert werden");
                }
            }
            
        }

Vielen Dank
Grüße von CopWorker
 

Spyke

Premium-User
Beachte nur das SizeChanged auch ausgelöst wird wenn du das Fenster manuell mit der Maus vergrößerst/verkleinerst (über die Rahmen des Fensters)
 

CopWorker

Erfahrenes Mitglied
Hallo Spyke,

das soll ja auch so sein.
Ziel ist es, dass das Steuerelement "btUnclasp.Visible = false;"
ausgeblendet wird wenn das Dialogfenster auf Monitorgröße geöffnete ist, egal wie.

Trotzdem vielen Dank für den Tipp.
Grüße von CopWorker
 

Neue Beiträge