Formの最小化とAnchor

昨日書いたのとはまた違う問題で、最小化した後復帰したら、サイズが変わるようなAnchor*1が設定されているコンポーネントのサイズが全部変わっていた。Form.AutoScaleModeとか色々弄ってみたけど、解決することはできなかった。
試行錯誤は諦めて、.NET、最小化とか入れてググって片っ端から見てたら、明らかに機械翻訳Microsoftのページが見つかった。()なんだよそれ!そういうことはもっと早く言ってくれよ!というか、さっさとパッチでも出せよ!しかも解決法書いてないじゃん!
まぁ、要は最小化する前にサイズを保存して、復帰したらそのサイズを戻せ、ってことなんだろう。で、最初はDeactivateイベントでWindowStateがMinimizedになったら保存してActivateイベントで復帰、見たいなことを書いたけど上手く動かなかった。どうも最小化から復帰したのにActivateイベントが呼ばれてない。また色々調べてみたら最小化とか復帰とか最大化は全部Resizeイベントが呼ばれるらしい。何でだよ……。で、Resizeイベントに復帰のコード書いて無事に最小化した後に復帰できるようになった。以下、C#のサンプルコード。(一回シンタックス・ハイライト機能を使ってみたかった、わけじゃないよ!ほんとだよ!)

bool formMinimized = false;
Size webBrowserSize, urlTextBoxSize;
private void MainForm_Resize(object sender,EventArgs e) {
    //最小化から復帰はActivateイベントじゃなくてResizeイベントらしい。何でだよ!
    //最小化もDeactivateイベントじゃなくてResizeイベントらしい。何でだよ!
    if(WindowState != FormWindowState.Minimized) {
        if(formMinimized) {
            webBrowser.Size = webBrowserSize;
            urlTextBox.Size = urlTextBoxSize;
            formMinimized = false;
        } else {
            //Anchorを使ってResizeするようなコンポーネントは全部Size退避
            webBrowserSize = webBrowser.Size;
            urlTextBoxSize = urlTextBox.Size;
        }
    } else
        formMinimized = true;
}

*1:たとえば"AnchorStyles.Left | AnchorStyles.Right"見たいなやつ