VB2005のフォームにはコンストラクタがない?!
Visual Basic 2005で、フォームのコンストラクタに処理を書こうと思ったのですがコンストラクタがどこにもありません。.Designer.vbファイル(Partialクラス部分)のほうにもないのです。
しょうがないので、自分で「Public Sub New()」と入力してEnterを押したら、下記のようなコードが自動的に追加されました。
Public Sub New()
' この呼び出しは、Windows フォーム デザイナで必要です。
InitializeComponent()
' InitializeComponent() 呼び出しの後で初期化を追加します。
End Sub
調べてみると、杉下さんのblogの1年以上前の記事にこのことが書かれていました。
' この呼び出しは、Windows フォーム デザイナで必要です。
InitializeComponent()
' InitializeComponent() 呼び出しの後で初期化を追加します。
End Sub
Partialクラスのほうに、DesignerGeneratedという属性が宣言されているのですが、どうやらこれによってコンストラクタが暗黙的に生成される仕組みになっているようです。
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Partial Class Form1
Inherits System.Windows.Forms.Form
もちろん、この属性がついたままコンストラクタを記述しても特に問題にはなりません。Partial Class Form1
Inherits System.Windows.Forms.Form
ちなみBeta1の時点では、Partialクラス部分に普通にコンストラクタが記述されていたみたいですね。
VB6からの移行ユーザーを意識してのことだと思いますが、.NET 2002, 2003からの方はちょっととまどってしまいますね。