よろずやネット

最近はLibreofficeにハマっています。

最初のフォーム(イベント)

イメージ 1

一つのフォームに対して、 MainForm.vb と MainForm.Designer.vb が生成されるのは、VS2003ユーザーとしては戸惑いがある。
何とか一つにできないかと思い、オプションを探してみたが、それらしきモノは見つからない。
SDは、こういう仕様だと思い込むことにする。SDはフォームのデザインとフォームにさせたいコードを別々のファイルに書くのだ。

次はイベント(Event)を追加する方法を模索する。
フォームのデザイン画面で、フォームをダブルクリックすると、

Sub MainFormLoad(ByVal sender As Object, ByVal e As EventArgs)

End Sub

んん、これもVS2003と似ているけども何か違うぞ。
VSで同じことをしてみると、

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

End Sub

となった。
そうか、 Handles MyBase.Load というコードがSDには無いのだ。
では、SDではイベントハンドラーはどこに記述されているのか?
MainForm.Designer.vbを開けてみると、あったあった!
AddHandler Load, AddressOf Me.MainFormLoad
ここで単純な疑問。

VSの場合は添付画像のように、コードを書くところの上部に関連するイベントがあって、それを選択するだけで、イベントが自動的に追加される。
SDでは、既定のイベント以外のイベントは全て手作業でコードを入力していくの?もしそうだったら手間かかりすぎ~
で、コードにかかれているコメントをよく見ると、

''' <summary>
''' This method is required for Windows Forms designer support.
''' Do not change the method contents inside the source code editor. The Forms designer might
''' not be able to load this method if it was changed manually.
''' </summary>

と書かれている。要は、「手作業でコードを変更してはいけません」的なことが書いてある。
じゃ、一体どうやって、イベントを追加していくのじゃ~?