まずフォームのイベント関係から
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フィールド)の設定と、行の色を変える設定をしています。