グリッドの使い方
開発でグリッドを使用する場合、殆どがGrape CityのSPREAD for .NETやFlexGrid for .NETなんですが、半年も離れていると、いつも使い方を忘れます。半年くらいJavaをやっていて、VB.NETになったらもうアウト。Javaの前は、C#で、SPREAD for .NETは結構使ってたのですが・・。
しかも、バックカラーを変えるとか、1行選択するとか、簡単な事なんですが、アレ?どのプロパティだっけ?とか探しまくる始末。自分がほとほと情けなくなります。もともと、記憶力悪いタイプだから、仕方ないけどね。
そんなこんなで、とりあえず、使いそうなパターンを羅列しておきます。
Private Sub ShowGrid_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ShowGrid.Click
'データ作成
Dim oDataTable As New DataTable
oDataTable.Columns.Add("日付", GetType(Date))
oDataTable.Columns.Add("金額", GetType(Integer))
oDataTable.Columns.Add("備考", GetType(String))
oDataTable.Rows.Add(New Object() {"2007/01/29", 12500, ""})
oDataTable.Rows.Add(New Object() {"2007/01/30", 22500, ""})
oDataTable.Rows.Add(New Object() {"2007/01/30", 17800, ""})
oDataTable.Rows.Add(New Object() {"2007/01/31", 15000, ""})
'グリッド表示
Me.C1FlexGrid.DataSource = oDataTable
'タイトル文字位置
Me.C1FlexGrid.Cols(0).TextAlignFixed = C1.Win.C1FlexGrid.TextAlignEnum.CenterCenter
Me.C1FlexGrid.Cols(1).TextAlignFixed = C1.Win.C1FlexGrid.TextAlignEnum.CenterCenter
Me.C1FlexGrid.Cols(2).TextAlignFixed = C1.Win.C1FlexGrid.TextAlignEnum.CenterCenter
'データ行の文字位置
Me.C1FlexGrid.Cols(0).TextAlign = C1.Win.C1FlexGrid.TextAlignEnum.CenterCenter
Me.C1FlexGrid.Cols(1).TextAlign = C1.Win.C1FlexGrid.TextAlignEnum.RightCenter
Me.C1FlexGrid.Cols(2).TextAlign = C1.Win.C1FlexGrid.TextAlignEnum.LeftCenter
'幅
Me.C1FlexGrid.Cols(0).Width = 75
Me.C1FlexGrid.Cols(1).Width = 80
Me.C1FlexGrid.Cols(2).Width = 120
'表示形式
Me.C1FlexGrid.Cols(1).Format = "#,##0"
'1行選択モード
Me.C1FlexGrid.FocusRect = C1.Win.C1FlexGrid.FocusRectEnum.None
Me.C1FlexGrid.SelectionMode = C1.Win.C1FlexGrid.SelectionModeEnum.Row
'列マージ
Me.C1FlexGrid.AllowMerging = C1.Win.C1FlexGrid.AllowMergingEnum.Free
Me.C1FlexGrid.Cols(0).AllowMerging = True
'行バックカラー変更
Me.C1FlexGrid.Rows(2).StyleNew.BackColor = Drawing.Color.YellowGreen
Me.C1FlexGrid.Rows(3).StyleNew.BackColor = Drawing.Color.YellowGreen
End Sub
しかも、バックカラーを変えるとか、1行選択するとか、簡単な事なんですが、アレ?どのプロパティだっけ?とか探しまくる始末。自分がほとほと情けなくなります。もともと、記憶力悪いタイプだから、仕方ないけどね。
そんなこんなで、とりあえず、使いそうなパターンを羅列しておきます。
Private Sub ShowGrid_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ShowGrid.Click
'データ作成
Dim oDataTable As New DataTable
oDataTable.Columns.Add("日付", GetType(Date))
oDataTable.Columns.Add("金額", GetType(Integer))
oDataTable.Columns.Add("備考", GetType(String))
oDataTable.Rows.Add(New Object() {"2007/01/29", 12500, ""})
oDataTable.Rows.Add(New Object() {"2007/01/30", 22500, ""})
oDataTable.Rows.Add(New Object() {"2007/01/30", 17800, ""})
oDataTable.Rows.Add(New Object() {"2007/01/31", 15000, ""})
'グリッド表示
Me.C1FlexGrid.DataSource = oDataTable
'タイトル文字位置
Me.C1FlexGrid.Cols(0).TextAlignFixed = C1.Win.C1FlexGrid.TextAlignEnum.CenterCenter
Me.C1FlexGrid.Cols(1).TextAlignFixed = C1.Win.C1FlexGrid.TextAlignEnum.CenterCenter
Me.C1FlexGrid.Cols(2).TextAlignFixed = C1.Win.C1FlexGrid.TextAlignEnum.CenterCenter
'データ行の文字位置
Me.C1FlexGrid.Cols(0).TextAlign = C1.Win.C1FlexGrid.TextAlignEnum.CenterCenter
Me.C1FlexGrid.Cols(1).TextAlign = C1.Win.C1FlexGrid.TextAlignEnum.RightCenter
Me.C1FlexGrid.Cols(2).TextAlign = C1.Win.C1FlexGrid.TextAlignEnum.LeftCenter
'幅
Me.C1FlexGrid.Cols(0).Width = 75
Me.C1FlexGrid.Cols(1).Width = 80
Me.C1FlexGrid.Cols(2).Width = 120
'表示形式
Me.C1FlexGrid.Cols(1).Format = "#,##0"
'1行選択モード
Me.C1FlexGrid.FocusRect = C1.Win.C1FlexGrid.FocusRectEnum.None
Me.C1FlexGrid.SelectionMode = C1.Win.C1FlexGrid.SelectionModeEnum.Row
'列マージ
Me.C1FlexGrid.AllowMerging = C1.Win.C1FlexGrid.AllowMergingEnum.Free
Me.C1FlexGrid.Cols(0).AllowMerging = True
'行バックカラー変更
Me.C1FlexGrid.Rows(2).StyleNew.BackColor = Drawing.Color.YellowGreen
Me.C1FlexGrid.Rows(3).StyleNew.BackColor = Drawing.Color.YellowGreen
End Sub
この記事へのコメント