フォームのコード(住所マスタ)

レイアウト作成(住所マスタ)で作成したフォームに実際にコードを書いていきます。
まずフォームのイベント関係から

 Private Sub Form_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    AddHandler Me.FormClosing, AddressOf CommonLib.Form_FormClosing
    Call TextBoxAddHandler()
    Call FormClear()
    Call dgvFill()
 End Sub

 Private Sub TextBoxAddHandler()
    'GroupBox1にあるTextBoxにイベントを定義する
    For Each ctrl As Control In GroupBox1.Controls
       If TypeOf ctrl Is TextBox Then
          Dim tb As TextBox = DirectCast(ctrl, TextBox)
          AddHandler tb.Enter, AddressOf CommonLib.TextBox_Enter
          AddHandler tb.Leave, AddressOf CommonLib.TextBox_Leave
       End If
    Next
 End Sub

 Private Sub FormKeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
    'Enterキーで次のコントロールにフォーカスする
    'フォームのKeyPreviewをTrueにしておく
    If e.KeyCode = Keys.Enter Then
       Me.ProcessTabKey(True)
    End If
 End Sub
つぎにフォームのメソッドも書いていきます。
 Private Sub dgvFill()
    Dim sbSqlCommand As New System.Text.StringBuilder("")
    sbSqlCommand.Append("SELECT ID, コード, 会社名, フリガナ, 部署担当, 郵便番号, 住所1, 住所2, TEL, EMail")
    sbSqlCommand.Append(" FROM 住所マスター")
    sbSqlCommand.Append(" ORDER BY フリガナ;")

    Dim SqlCommand As New OleDb.OleDbCommand
    SqlCommand.CommandText = sbSqlCommand.ToString

    Dim db As New database.MSAccess.DBAccess
    Dim dt住所マスター As DataTable = db.getDataTable(SqlCommand)

    If IsNothing(dt住所マスター) Then
       Dim ex As Exception = db.SQLException
       MsgBox("住所マスターの取り出しに失敗しました。" & vbNewLine & ex.Message, MsgBoxStyle.Critical, "Form住所マスタ管理/dgvFill")
       Exit Sub
    End If

    dgv.DataSource = dt住所マスター.DefaultView
    Call dgvFormat()
 End Sub

 Private Sub FormClear()
    For Each ctrl As Control In GroupBox1.Controls
       If TypeOf ctrl Is TextBox Then
          Dim tb As TextBox = DirectCast(ctrl, TextBox)
          tb.Text = ""
       End If
    Next

    lblID.Text = ""
 End Sub

 Private Sub dgvFormat()
    dgv.Columns("ID").Visible = False
    dgv.AlternatingRowsDefaultCellStyle.BackColor = Color.LightCyan
 End Sub
簡単なコードの説明
イベント:
  • Form_Load:フォームが生成されたときに実行されるコード。TextBoxにイベントを設定、フォームのクリア(初期化)、dgv(DataGridView)へのデータのバインドするコードを呼び出します。
  • TextBoxAddHandler:TextBoxに一括してイベントを設定をするコード。
  • FormKeyDown:Enterキーを押すとフォーカスを移動させるコード。

メソッド:
  • dgvFill:dgv(DataGridView)へのデータのバインドするコード。
  • FormClear:フォームをクリアするコード。
  • dgvFormat;dgvの見た目の変更を行うコード。ここでは非表示項目(IDフィールド)の設定と、行の色を変える設定をしています。