Newキーワード [VB.NET]

Visual Basic.NET ADO.NETデータベースプログラミング

インスタンス生成

Newキーワードを使って、オブジェクトのインスタンスを作成します。

テキストボックスを動的に作成

宣言と同時にインスタンスを生成できます。長くなるので途中で折り返しています。 次の例では、テキストボックスを動的に生成しています。

Dim txtBox1 As System.Windows.Forms.TextBox = _
    New System.Windows.Forms.TextBox

宣言と同時にインスタンスを生成するときは、短縮形で記述できます。

Dim txtBox1 As New System.Windows.Forms.TextBox

宣言だけした後に、Newキーワードを使って、インスタンスを生成します。

変数を宣言したままでこの変数を使用すると、インスタンスが生成されていないので、実行時エラーになります。

' 宣言のみ
Dim txtBox3 As System.Windows.Forms.TextBox
 
' テキストボックスのインスタンスを生成
txtBox3 = New System.Windows.Forms.TextBox

サンプルプログラム

テキストボックスを動的に生成するサンプルプログラムです。テキストボックスは、フォームロードイベントハンドラで生成します。

Public Class frmNew
Inherits System.Windows.Forms.Form

#Region " Windows フォーム デザイナで生成されたコード "
  ' 自動生成部分省略
#End Region

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

      ' 【動的にテキストボックスを生成】
      ' ◆宣言と同時にインスタンスを生成
      Dim txtBox1 As System.Windows.Forms.TextBox = _
      New System.Windows.Forms.TextBox

      ' プロパティの設定
      txtBox1.Location = New System.Drawing.Point(30, 20)
      txtBox1.Name = "txtCode"
      txtBox1.TabIndex = 10
      txtBox1.Text = "txtCodeです"

      ' フォームにテキストボックスを追加
      Me.Controls.Add(txtBox1)

      ' ◆宣言と同時にインスタンスを生成する短縮形
      Dim txtBox2 As New System.Windows.Forms.TextBox

      ' プロパティの設定
      txtBox2.Location = New System.Drawing.Point(30, 40)
      txtBox2.Name = "txtName"
      txtBox2.TabIndex = 20
      txtBox2.Text = "txtNameです"

      ' フォームにテキストボックスを追加
      Me.Controls.Add(txtBox2)

      ' ◆宣言のみ
      Dim txtBox3 As System.Windows.Forms.TextBox

      ' テキストボックスインスタンスを生成
      txtBox3 = New System.Windows.Forms.TextBox

      ' プロパティの設定
      txtBox3.Location = New System.Drawing.Point(30, 60)
      txtBox3.Name = "txtKana"
      txtBox3.TabIndex = 10
      txtBox3.Text = "txtKanaです"

      ' フォームにテキストボックスを追加
      Me.Controls.Add(txtBox3)

  End Sub

End Class