MicrosoftはWindows向けの開発ツールとしてVisual Studioというものを昔から提供している。ところで、.Net Framework 2.0コアコンポーネントの中にDataGridViewなるものがあり、現在そいつを使って開発を行っているのだが、Microsoft .Net Framework 2.0 無印だと色々と不具合がある。そいつを解消しようと .Net 2.0 SP1を当てたらさぁ大変。

現在のプログラムの構成(抜粋は以下の通り)。開発言語はVB.NET 2.0。

System.Windows.Forms.Form
↓派生
COMMON.Windows.Forms.BaseForm -(1)
↓派生
各業務画面

ここで、やむなき事情があり(1)でSystem.Windows.Forms.Form#CancelButtonをShadowsしているのだが、各業務画面をデザイン中にCancelButtonをどういじっても次に開くとNothingになっている(各業務画面.Designer.vbにもMe.CancelButton = Nothingなる行が追加されている)という問題が発生した。

VS2005SP1+.Net 2.0 SP2=発生
VS2005SP1+.Net 2.0 SP1=発生
VS2005無印+.Net 2.0 SP1=発生
VS2005SP1+.Net 2.0無印=しない
VS2005無印+.Net 2.0無印=しない

.Net 2.0 無印→SP1の何らかの修正のためにVS2005のデザインモードがShadowsされたプロパティをうまくハンドリングできていない(どうも各業務画面のCancelButtonプロパティをSystem.Windows.Forms.Form(現在編集中のフォームの親クラスの親クラス)のものを見に行っているような動作)様子。いたしかたなくVS2005SP1+.Net 2.0 無印 ランタイムでDataGridViewの不具合を回避しつつ開発、客先では.Net 2.0 SP1ランタイムで実行してもらう事に。Vista SP1で開発している人は.Net 2.0 無印が使えないため、細心の注意を払って開発して貰うしかなくなった。

 なんとも解せん現象だなや。