找回密码
 立即注册

QQ登录

只需一步,快速开始

zheng_hq

银牌会员

151

主题

391

帖子

2227

积分

银牌会员

积分
2227

活字格认证

zheng_hq
银牌会员   /  发表于:2011-10-18 08:54  /   查看:6634  /  回复:9
就像excel那样,如何给某列划线条,以便区分板块呢?

9 个回复

倒序浏览
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2011-10-18 09:47:00
沙发

回复 1# zheng_hq 的帖子

可以在OwnerDrawCell事件中来画这条线:

  1.         private SolidBrush _bdrBrush;
  2.         private Margins _margin ;
  3.         private Rectangle _rc;
  4.         private Graphics _g;
  5.         private void Form1_Load(object sender, System.EventArgs e)
  6.         {
  7.             _bdrBrush = new SolidBrush(Color.Red);
  8.             _margin = new Margins(0, 1, 0, 0);
  9.             _flex.DrawMode = DrawModeEnum.OwnerDraw;
  10.         }

  11.         private void _flex_OwnerDrawCell(object sender, C1.Win.C1FlexGrid.OwnerDrawCellEventArgs e)
  12.         {
  13.             e.DrawCell();
  14.                         _g = e.Graphics;            
  15.             if (e.Col == 3)
  16.             {
  17.                 _rc = e.Bounds;
  18.                 _rc.X = _rc.Right - _margin.Right;
  19.                 _rc.Width = _margin.Right;                 
  20.                 _g.FillRectangle(_bdrBrush, _rc);
  21.             }
  22.         }
复制代码
回复 使用道具 举报
zheng_hq
银牌会员   /  发表于:2011-10-18 09:56:00
板凳
vb.net 哈
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2011-10-18 10:09:00
地板

回复 3# zheng_hq 的帖子

VB.NET代码如下:
  1.     Private _bdrBrush As SolidBrush
  2.     Private _margin As Margins
  3.     Private _rc As Rectangle
  4.     Private _g As Graphics

  5.     Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load
  6.         _bdrBrush = New SolidBrush(Color.Red)
  7.         _margin = New Margins(0, 1, 0, 0)
  8.         _flex.DrawMode = DrawModeEnum.OwnerDraw
  9.     End Sub

  10.     Private Sub _flex_OwnerDrawCell(ByVal sender As Object, ByVal e As C1.Win.C1FlexGrid.OwnerDrawCellEventArgs) Handles _flex.OwnerDrawCell

  11.         e.DrawCell()
  12.         _g = e.Graphics
  13.         If e.Col = 3 Then
  14.             _rc = e.Bounds
  15.             _rc.X = _rc.Right - _margin.Right
  16.             _rc.Width = _margin.Right
  17.             _g.FillRectangle(_bdrBrush, _rc)
  18.         End If
  19.     End Sub

复制代码
回复 使用道具 举报
zheng_hq
银牌会员   /  发表于:2011-10-18 15:35:00
5#
2. Private _margin As Printing.Margins
回复 使用道具 举报
zheng_hq
银牌会员   /  发表于:2011-10-18 15:47:00
6#
绘制线条这个模块应放在哪里呢?与其它设定表头合并的

Public Class Form1
    Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
        'TODO: 这行代码将数据加载到表“PlDataSet.pl”中。您可以根据需要移动或删除它。
        Me.PlTableAdapter.Fill(Me.PlDataSet.pl)
        SetHeaders()

    End Sub

是不是可以设置成  module  drawframeline
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2011-10-18 16:01:00
7#
原帖由 zheng_hq 于 2011-10-18 15:47:00 发表
绘制线条这个模块应放在哪里呢?与其它设定表头合并的

Public Class Form1
    Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
        'TODO: 这行代码将数据加载到表“PlDataSet.pl”中。您可以根据需要移动或删除它


不太明白“绘制线条这个模块应放在哪里呢?与其它设定表头合并的
”这句话什么意思,能详细什么一下吗
回复 使用道具 举报
zheng_hq
银牌会员   /  发表于:2011-10-18 17:15:00
8#
原帖由 dof 于 2011-10-18 16:01:00 发表
[quote] 原帖由 zheng_hq 于 2011-10-18 15:47:00 发表
绘制线条这个模块应放在哪里呢?与其它设定表头合并的

Public Class Form1
    Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
  


在我的c1flexgrid1里面我对表头进行了合并,那么绘制线条的这些语句该怎么与表头合并的语句放置呢?两者的关系该是怎样的呢?

  ' create column header
        C1FlexGrid1.Cols(0).AllowMerging = True
        C1FlexGrid1.Cols(1).AllowMerging = True
        C1FlexGrid1.Cols(2).AllowMerging = True

        rng = C1FlexGrid1.GetCellRange(0, 0, 1, 0)
        rng.Data = " "
回复 使用道具 举报
zheng_hq
银牌会员   /  发表于:2011-10-18 17:39:00
9#
问题解决了,谢谢!自己琢磨清楚了!
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2011-10-18 18:25:00
10#
好的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部