タイトル | : DataGridViewでセルの境界線が消えない |
記事No | : 6569 |
投稿日 | : 2007/11/21(Wed) 09:57 |
投稿者 | : まりん |
はじめましてこんにちは。VB初心者ですがよろしくおねがいします。
DataGridViewで下のような表を作成しようとしています。
行を追加したあとCellPaintingイベントで個別のセル境界線を設定しています。 このとき、'1列目のセルが空白だった場合、上側の罫線を消す。というコマンド e.AdvancedBorderStyle.Top = DataGridViewAdvancedCellBorderStyle.None で上側の境界線だけが消えません。(あとは指定とおりできています) でもTopの部分をRight,Left,Bottomに変えると指定通り境界線は消えます。 また、'1列目のセルすべてで上側の罫線を消す。とした場合、1行目のみ上側境界線は消えますがあとは消えていません。 いろいろ調べましたがどうしても理由が検討つかないのでどなたか教えてください。 よろしくおねがいします。
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim row0 As String() = {"title1", "", "data1"} Dim row1 As String() = {"title2", "", "data2"} Dim row2 As String() = {"title3", "", ""} Dim row3 As String() = {"", "subtitle1", "data3-1"} Dim row4 As String() = {"", "subtitle2", "data3-2"} Dim row5 As String() = {"title4", "", "data4"}
With Me.DataGridView1 .Rows.Add(row0) .Rows.Add(row1) .Rows.Add(row2) .Rows.Add(row3) .Rows.Add(row4) .Rows.Add(row5) End With
End Sub
Sub DataGridView1_CellPainting(ByVal sender As Object, ByVal e As DataGridViewCellPaintingEventArgs) Handles DataGridView1.CellPainting
'1列目の右側の罫線は消す If e.ColumnIndex = 0 Then e.AdvancedBorderStyle.Right = DataGridViewAdvancedCellBorderStyle.None End If
'1列目のセルが空白だった場合、上側の罫線を消す。1列目の右側の罫線を書く。 If e.ColumnIndex = 0 And e.Value = "" Then e.AdvancedBorderStyle.Top = DataGridViewAdvancedCellBorderStyle.None’←これが消えない e.AdvancedBorderStyle.Right = DataGridViewAdvancedCellBorderStyle.Single End If
'3列目のセルが空白だった場合、3列目の右側の罫線を消す If e.ColumnIndex = 2 And e.Value = "" Then e.AdvancedBorderStyle.Right = DataGridViewAdvancedCellBorderStyle.None End If
End Sub
|