- PR -

DataGridViewの罫線について

1
投稿者投稿内容
なおこ
会議室デビュー日: 2007/09/21
投稿数: 10
投稿日時: 2007-10-23 14:52
こんにちは。
DataGridViewに罫線を引きたいと思っています。
Grid全体や特定の列に対して罫線を引くことはできるのですが、
セル単位で罫線を引くことができません。
どなたか、ご存知の方はいらしゃらないでしょうか?
よろしくお願いします。
なおこ
会議室デビュー日: 2007/09/21
投稿数: 10
投稿日時: 2007-10-24 13:24
自己レスです。
DataGridViewCellを継承して、Paintメソッドをオーバーライドしたらできました。

Public Property Ruled_Line() As Boolean
Get
Return m_ruledLine
End Get
Set(ByVal value As Boolean)
m_ruledLine = value
End Set
End Property

Protected Overrides Sub Paint(ByVal graphics As System.Drawing.Graphics, ByVal clipBounds As System.Drawing.Rectangle, ByVal cellBounds As System.Drawing.Rectangle, ByVal rowIndex As Integer, ByVal cellState As System.Windows.Forms.DataGridViewElementStates, ByVal value As Object, ByVal formattedValue As Object, ByVal errorText As String, ByVal cellStyle As System.Windows.Forms.DataGridViewCellStyle, ByVal advancedBorderStyle As System.Windows.Forms.DataGridViewAdvancedBorderStyle, ByVal paintParts As System.Windows.Forms.DataGridViewPaintParts)
MyBase.Paint(graphics, clipBounds, cellBounds, rowIndex, cellState, value, formattedValue, errorText, cellStyle, advancedBorderStyle, paintParts)

If Ruled_Line = True Then
Dim objPen As New Pen(Color.Black, 1)
objPen.DashStyle = Drawing2D.DashStyle.Solid
graphics.DrawRectangle(objPen, New Rectangle(cellBounds.X, cellBounds.Y, cellBounds.Width - 1, cellBounds.Height - 1))
End If

End Sub

実際には、このままだと、複数セルに罫線を引いた時に、端以外は二重線になってしまうので、これからもうちょっと改良しないといけないんですが。
なおこ
会議室デビュー日: 2007/09/21
投稿数: 10
投稿日時: 2007-10-24 13:27
・・・何だか見にくいコードになってしまいました。
何で他の人が書いてくれるコードは、スペースとかタブとかがちゃんとなってて、見やすいのだろう・・・う〜ん。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2007-10-24 13:35
引用:

なおこさんの書き込み (2007-10-24 13:27) より:

・・・何だか見にくいコードになってしまいました。
何で他の人が書いてくれるコードは、スペースとかタブとかがちゃんとなってて、見やすいのだろう・・・う〜ん。


HTML を知っていると想像がつくとは思いますが、とりあえず BB コード を使いましょう。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
なおこ
会議室デビュー日: 2007/09/21
投稿数: 10
投稿日時: 2007-10-24 13:48
こういうものがあったのですか。
ありがとうございます。
書込画面でスペースとかを入れて調整してもコードが詰められて、ViewStateの暗号みたいになってしまって、これから質問する時も、答える(答えられる知識があるかは別としまして・・・)時もわかりにくいよなぁと思っていました。
教えて頂き、ありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)