Windows FormsなEXEを作っていると、アイコンを設定しますよね。
でフォーム一個一個にアイコンを設定するとFormA.resx, FormB.resxとアイコンが1画面ごとに取り込まれてしまいます。
隠れているresxファイルを見るには[すべてのファイルを表示]アイコンをクリックしてください。
まぁこれでは都合がよろしくない。(重複感、変更時付加)
それでこういった構造にします。
BaseForm <- FormA
^---FormB
要はBaseClassを作ってそこで一括設定してしまおうというわけですね。
BaseFormのLoadにこんな記述を書きます。
Assembly asm = Assembly.GetExecutingAssembly();
this.Icon = new Icon(asm.GetManifestResourceStream("namespace.App.ico"))
そうするとアプリケーションのアイコンとも共用できていい感じ!!
でもね、FormAやFormBをデザイナで編集すると、そのアイコンが内部に取り込まれちゃうんですよ。
そのたびにIconプロパティにカーソルを合わせてDeleteですよ。
たぶんこれはVisualStudioのデザイナが気を利かせすぎてるんだと思うんですが、ちょっと気を利かせすぎ。
これも何とかなんないかなぁ。