作成日:2021/04/13 最終更新日: 2021/04/13
文書種別
使用方法
詳細
オーナー描画(OwnerDraw)の機能を利用し、Graphics.DrawLineメソッドで手動で線を描画することにより、セル内に斜めの罫線を引くことができます。
◎サンプルコード(VB)
◎サンプルコード(VB)
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
' 列幅と行高の設定
C1FlexGrid1.Cols(2).Width = 40
C1FlexGrid1.Rows(2).Height = 40
' オーナー描画の使用
C1FlexGrid1.DrawMode = C1.Win.C1FlexGrid.DrawModeEnum.OwnerDraw
End Sub
Private Sub C1FlexGrid1_OwnerDrawCell(sender As Object, e As C1.Win.C1FlexGrid.OwnerDrawCellEventArgs) Handles C1FlexGrid1.OwnerDrawCell
' B2セルの場合
If ((e.Row = 2) AndAlso (e.Col = 2)) Then
' 通常のセル描画の実行
e.DrawCell(C1.Win.C1FlexGrid.DrawCellFlags.All)
' 斜め罫線の描画
e.Graphics.DrawLine(Pens.Red, e.Bounds.Location, New Point(e.Bounds.Right, e.Bounds.Bottom))
' 描画の終了
e.Handled = True
End If
End Sub
◎サンプルコード(C#)
private void Form1_Load(object sender, EventArgs e)
{
// 列幅と行高の設定
c1FlexGrid1.Cols[2].Width = 40;
c1FlexGrid1.Rows[2].Height = 40;
// オーナー描画の使用
c1FlexGrid1.DrawMode = C1.Win.C1FlexGrid.DrawModeEnum.OwnerDraw;
}
private void c1FlexGrid1_OwnerDrawCell(object sender, C1.Win.C1FlexGrid.OwnerDrawCellEventArgs e)
{
// B2セルの場合
if (e.Row == 2 && e.Col == 2)
{
// 通常のセル描画の実行
e.DrawCell(C1.Win.C1FlexGrid.DrawCellFlags.All);
// 斜め罫線の描画
e.Graphics.DrawLine(Pens.Red, e.Bounds.Location, new Point(e.Bounds.Right, e.Bounds.Bottom));
// 描画の終了
e.Handled = true;
}
}