Here is a ghetto solution:
VB.NET:Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick If Me.WindowState = FormWindowState.Maximized Then Me.WindowState = FormWindowState.Normal End If End Sub
Put that in a timer w/ a small interval.
It's described in the Window Features article I linked, just about everything concerning windows handling at a lower level than VB.Net normally touches, if you coded C++ this stuff should be much familiar, also more advanced classic VB (VB6) programmers used much Win32 functionality because there was not a Framework available like we have today with .Net. The test code is standard Win32 PInvoke calls, the applications message loop goes through WndProc. In earlier VB days this was called subclassing and was used to change windows (read: forms and controls) since there was no inheritance and much class properties and their internals was not available to the developer. Win32 code with VB.Net should be avoided if Framework already provide the same functionality in its library, I think, usually does that mean .Net wraps standard calls without errors in a safe matter for us to easily use and saves us time and problems.A very nice fix, how did you come up with that code anyways?