Ich weiß, dass ich den aktuellen Status von WindowState abrufen kann, aber ich möchte wissen, ob ein Ereignis ausgelöst wird, wenn der Benutzer versucht, das Formular zu minimieren.
Ich weiß, dass ich den aktuellen Status von WindowState abrufen kann, aber ich möchte wissen, ob ein Ereignis ausgelöst wird, wenn der Benutzer versucht, das Formular zu minimieren.
Antworten:
Sie können das Ereignis "Größe ändern" verwenden und die Forms.WindowState-Eigenschaft im Ereignis überprüfen.
private void Form1_Resize ( object sender , EventArgs e )
{
if ( WindowState == FormWindowState.Minimized )
{
// Do some stuff
}
}
Um einzusteigen, bevor das Formular minimiert wurde, müssen Sie sich in die WndProc-Prozedur einbinden:
private const int WM_SYSCOMMAND = 0x0112;
private const int SC_MINIMIZE = 0xF020;
[SecurityPermission(SecurityAction.LinkDemand, Flags = SecurityPermissionFlag.UnmanagedCode)]
protected override void WndProc(ref Message m)
{
switch(m.Msg)
{
case WM_SYSCOMMAND:
int command = m.WParam.ToInt32() & 0xfff0;
if (command == SC_MINIMIZE)
{
// Do your action
}
// If you don't want to do the default action then break
break;
}
base.WndProc(ref m);
}
Um zu reagieren, nachdem das Formular minimiert wurde, haken Sie sich in das Resize
Ereignis ein, wie in den anderen Antworten angegeben (der Vollständigkeit halber hier enthalten):
private void Form1_Resize (object sender, EventArgs e)
{
if (WindowState == FormWindowState.Minimized)
{
// Do your action
}
}
Ich kenne kein bestimmtes Ereignis, aber das Resize
Ereignis wird ausgelöst, wenn das Formular minimiert ist. Sie können dies FormWindowState.Minimized
in diesem Ereignis überprüfen
Für Personen, die nach WPF-Fenstern suchen, um Ereignisse zu minimieren:
Es ist ein bisschen anders. Verwenden Sie für den Rückruf WindowState:
private void Form1_Resize(object sender, EventArgs e)
{
if (WindowState == FormWindowState.Minimized)
{
// Do some stuff
}
}
Das zu verwendende Ereignis ist StateChanged (statt Resize):
public Main()
{
InitializeComponent();
this.StateChanged += Form1_Resize;
}