VB.NER 【グリッド操作編】
目次
表の作成
表を作成する処理について解説します。
プログラムソース
Imports System
Imports System.Windows.Forms
Public Class Form1 : Inherits Form
Private Grid1 As DataGridView
Public Sub New()
Me.Size = New Drawing.Size(340, 240)
Grid1 = New DataGridView()
Grid1.SetBounds(10,10,300,120)
Grid1.ReadOnly = True
Grid1.ColumnCount = 2
Grid1.RowCount = 2
Grid1.Columns(0).HeaderText = "社員コード"
Grid1.Columns(1).HeaderText = "社員名"
Grid1.Rows(0).Cells(0).Value = "1"
Grid1.Rows(0).Cells(1).Value = "社員A"
Grid1.Rows(1).Cells(0).Value = "2"
Grid1.Rows(1).Cells(1).Value = "社員B"
Me.Controls.Add(Grid1)
End Sub
End Class
解説
GridViewコントロール = New DataGridView()
データグリッドビューのインスタンスを生成します。
Form.Controls.Add(GridViewコントロール)
データグリッドビューをフォームに追加します。
セル値の取得
セル値を取得する処理について解説します。
プログラムソース
Imports System
Imports System.Windows.Forms
Public Class Form1 : Inherits Form
Private Grid1 As DataGridView
Private Button1 As Button
Public Sub New()
InitializeComponent()
End Sub
Private Sub Button1_Click()
MsgBox(Grid1.SelectedCells(0).Value)
End Sub
Private Sub InitializeComponent()
Me.Size = New Drawing.Size(340, 240)
Grid1 = New DataGridView()
Grid1.SetBounds(10,10,300,120)
Grid1.ReadOnly = True
Grid1.ColumnCount = 2
Grid1.RowCount = 2
Grid1.Columns(0).HeaderText = "社員コード"
Grid1.Columns(1).HeaderText = "社員名"
Grid1.Rows(0).Cells(0).Value = "1"
Grid1.Rows(0).Cells(1).Value = "社員A"
Grid1.Rows(1).Cells(0).Value = "2"
Grid1.Rows(1).Cells(1).Value = "社員B"
Me.Controls.Add(Grid1)
Button1 = New Button()
Button1.SetBounds(10,140,100,40)
Button1.Text = "値取得"
AddHandler Button1.Click, AddressOf Button1_Click
Me.Controls.Add(Button1)
End Sub
End Class
解説
GridView.SelectedCells(0).Value
選択中のセル値を取得します。
行の追加
行を追加する処理について解説します。
プログラムソース
Imports System
Imports System.Windows.Forms
Public Class Form1 : Inherits Form
Private Grid1 As DataGridView
Private Button1 As Button
Public Sub New()
InitializeComponent()
End Sub
Private Sub Button1_Click()
Grid1.Rows.Add()
Dim MaxRow As Integer = Grid1.Rows.Count
Grid1.Rows(MaxRow-1).Cells(0).Value=MaxRow
Grid1.Rows(MaxRow-1).Cells(1).Value="社員" & Chr(64+MaxRow)
End Sub
Private Sub InitializeComponent()
Me.Size = New Drawing.Size(340, 240)
Grid1 = New DataGridView()
Grid1.SetBounds(10,10,300,120)
Grid1.ReadOnly = True
Grid1.AllowUserToAddRows = False
Grid1.ColumnCount = 2
Grid1.Columns(0).HeaderText = "社員コード"
Grid1.Columns(1).HeaderText = "社員名"
Me.Controls.Add(Grid1)
Button1 = New Button()
Button1.SetBounds(10,140,100,40)
Button1.Text = "行追加"
AddHandler Button1.Click, AddressOf Button1_Click
Me.Controls.Add(Button1)
End Sub
End Class
解説
GridView.Rows.Add()
DataGridViewに行を追加します。
テーブルデータの表示
テーブルデータを表示する処理について解説します。
プログラムソース
Imports System
Imports System.Data
Imports System.Windows.Forms
Public Class Form1 : Inherits Form
Private Grid1 As DataGridView
Private Button1 As Button
Public Sub New()
Me.Size = New Drawing.Size(340, 240)
Grid1 = New DataGridView()
Grid1.SetBounds(10,10,300,120)
Grid1.ReadOnly = True
Grid1.AllowUserToAddRows = False
Me.Controls.Add(Grid1)
Button1 = New Button()
Button1.SetBounds(10,140,100,40)
Button1.Text = "表示"
AddHandler Button1.Click, AddressOf Button1_Click
Me.Controls.Add(Button1)
End Sub
Private Sub Button1_Click()
Dim Cn As New OleDb.OleDbConnection
Dim Cmd As New OleDb.OleDbCommand
Dim Da As New OleDb.OleDbDataAdapter
Dim Ds As New DataSet
Cn.ConnectionString = "Provider=SQLOLEDB;" & _
"Data Source=localhost\SQLExpress;" & _
"Initial Catalog=Database;User ID=sa;Password=sa;"
Cn.Open()
Cmd.Connection = Cn
Cmd.CommandText="SELECT 社員コード,社員名 FROM 社員マスタ"
Da.SelectCommand = Cmd
Da.Fill(Ds)
Grid1.DataSource = Ds.Tables(0)
Cn.Close()
Ds.Dispose() : Da.Dispose() : Cmd.Dispose() : Cn.Dispose()
End Sub
End Class
解説
GridView.DataSource
表示対象を設定します。