Wiem, że mogę uzyskać bieżący stan przez WindowState, ale chcę wiedzieć, czy jest jakieś zdarzenie, które zostanie uruchomione, gdy użytkownik spróbuje zminimalizować formularz.Jak wykryć zminimalizowanie formy okna?
Odpowiedz
Aby dostać się przed formie zostało zminimalizowane musisz podpiąć do procedury WndProc:
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);
}
reagować po formularz został zminimalizowany Into the hook Resize
Zdarzenie, na które wskazują inne odpowiedzi (zawarte tutaj w celu uzyskania kompletności):
private void Form1_Resize (object sender, EventArgs e)
{
if (WindowState == FormWindowState.Minimized)
{
// Do your action
}
}
nie wiem o konkretnego imprezy, ale Zdarzenie Resize
gdy formularz jest zminimalizowany, można sprawdzić na FormWindowState.Minimized
w takim przypadku
To w połączeniu z prywatną flagą "lastState" jest najłatwiejszym sposobem na obejście tego. –
Można użyć zdarzenia Resize i sprawdzić Forms.WindowState nieruchomości w przypadku.
private void Form1_Resize (object sender , EventArgs e)
{
if (WindowState == FormWindowState.Minimized)
{
// Do some stuff
}
}
Należy zauważyć, że jest to jedno z tych miejsc, w których [Wyjątki można połknąć] (http://stackoverflow.com/q/4933958/119527). –
Dla ludzi, którzy szukają dla okien WPF minimalizując imprezy:
To trochę inna. Do korzystania zwrotna WindowState:
private void Form1_Resize(object sender, EventArgs e)
{
if (WindowState == FormWindowState.Minimized)
{
// Do some stuff
}
}
Impreza w użyciu jest StateChanged (zamiast Resize):
public Main()
{
InitializeComponent();
this.StateChanged += Form1_Resize;
}
- 1. Dlaczego zamknięcie ostatniego okna podrzędnego powoduje zminimalizowanie okna nadrzędnego?
- 2. Jak wykryć anulowanie kliknięcia okna dialogowego datepicker?
- 3. jQuery: Jak wykryć szerokość okna w locie?
- 4. W jaki sposób ten kod optymalizuje zminimalizowanie?
- 5. Jak tymczasowo wyłączyć pakowanie i zminimalizowanie w czasie wykonywania?
- 6. C#: Formy szklane?
- 7. Formy i typy ciast
- 8. TopMost formy w wątku?
- 9. Symfony 2 wbudowane Formy
- 10. Formy reaktywne - wyłączony atrybut
- 11. Otrzymywanie formy procesu potomnego
- 12. Różne formy $ (document) .ready
- 13. Dynamiczne formy na wiosnę
- 14. Jak zapełnić okno C# formy combobox?
- 15. Formy Django: jak dynamicznie tworzyć etykiety ModelChoiceField
- 16. Etykiety pól chrupiące formy Django
- 17. Okno WPF. Jak wykryć pierwszy program?
- 18. formy szkieletowe z polami warunkowymi
- 19. Kątowe formy z przełącznikiem ng
- 20. podgląd formy grawitacyjnej przesłania obrazu
- 21. Ulepszone dolne formy formularza Bootstrap
- 22. walidacji jQuery bez formy tagu
- 23. Jak wykryć egzekucję scalacontextextext?
- 24. Jak wykryć kodowanie pliku?
- 25. Jak wykryć zakończenie innerHTML
- 26. Jak wykryć rotację ekranu?
- 27. Jak wykryć koniec strumienia?
- 28. Jak wykryć miganie przeglądarki?
- 29. Jak wykryć zdarzenie MouseUp za oknem?
- 30. Jak ustawić minimalny rozmiar okna w wxWidgets?
0xF030 jest przy maksymalizacji od normalnego stanu okna. 0xF120 to maksymalizacja z paska okien – k4yaman
W rzeczywistości przynosi to tylko wydarzenie Minimize * Click *! To, czego szukasz, to WM_SIZE (0x0005) i SIZE_MINIMIZED (1) –