Where did the code for the form and its control creation go in VS2005. In previous versions of Visual Studio .NET (C# & VB.NET), I could view the code of my form and see the InitializeComponent Method (this method creates the form and its controls at run-time). In VS2005, the code doen't appear in the Public Class Form1, for example.
Well, that's partially true. In VS2005, we now have partial classes. Whereas there were 2 files associated with a Form in Visual Studio .NET (1.0 and 1.1), Form1.vb and Form1.resx, there are now three files.
Form1.vb still contains the code that you write for the form including form and control events, and your public and private methods. However the declaration of the Controls and the Form (i.e., InitializeComponent method) have been moved to another file named Form1.Designer.vb.
Actually, all this appears to do for me as a developer, is to keep me from having to look at all the code for the Form and Control creation. Normally, I am not interested in this code and it can clutter my view of the code in which I am interested, that being the code that I add to the form.
If you are interested in the way the new Designer file differs from the old Form1.vb, the following code snippets show the top of the two files.
Figure 1 - Form1.vb
This file now contains only the code that you write plus any Form or Control Events created by double-clicking on the form or a control. You will also note that this class no longer inherits from System.Windows.Forms.Form. That now appears in the new designer file.
| Public Class Form1 ''' <summary> ''' ''' ''' ''' ''' <remarks> Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load End Sub ''' <summary> ''' ''' ''' <remarks> Public Sub test() While True End While MsgBox("Test") Dim s As String = String.Empty End Sub End Class |
| <Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _ Partial Public Class Form1 Inherits System.Windows.Forms.Form 'Form overrides dispose to clean up the component list. <System.Diagnostics.DebuggerNonUserCode()> _ Protected Overrides Sub Dispose(ByVal disposing As Boolean) If disposing AndAlso components IsNot Nothing Then components.Dispose() End If MyBase.Dispose(disposing) End Sub 'Required by the Windows Form Designer Private components As System.ComponentModel.IContainer 'NOTE: The following procedure is required by the Windows Form Designer 'It can be modified using the Windows Form Designer. 'Do not modify it using the code editor. <System.Diagnostics.DebuggerStepThrough()> _ Private Sub InitializeComponent() Me.Button1 = New System.Windows.Forms.Button Me.SuspendLayout() ' 'Button1 ' Me.Button1.Location = New System.Drawing.Point(157, 101) Me.Button1.Name = "Button1" Me.Button1.Size = New System.Drawing.Size(75, 23) Me.Button1.TabIndex = 0 Me.Button1.Text = "Button1" Me.Button1.UseVisualStyleBackColor = True ' 'Form1 ' Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font Me.ClientSize = New System.Drawing.Size(292, 266) Me.Controls.Add(Me.Button1) Me.Name = "Form1" Me.Text = "Form1" Me.ResumeLayout(False) End Sub Friend WithEvents Button1 As System.Windows.Forms.Button End Class |