以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  合并行  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=72227)

--  作者:fox-man
--  发布时间:2015/7/26 11:03:00
--  合并行

图片点击可在新窗口打开查看此主题相关图片如下:切图.png
图片点击可在新窗口打开查看
第一个逻辑列选定,第二个逻辑列合并为一行.否则不合并,怎么做啊?

--  作者:大红袍
--  发布时间:2015/7/26 11:12:00
--  
 这个做不到
--  作者:fox-man
--  发布时间:2015/7/26 11:14:00
--  
有变通的办法吗?
--  作者:大红袍
--  发布时间:2015/7/26 11:16:00
--  

参考代码,你想怎么合并都行

 

Dim tb As Table = Tables("表A")
tb.Grid.AllowMerging = C1.Win.C1FlexGrid.AllowMergingEnum.Custom
Dim rng As C1.Win.C1FlexGrid.CellRange = tb.Grid.GetCellRange(1, 1, 2, 2)
tb.Grid.MergedRanges.Add(rng)


--  作者:fox-man
--  发布时间:2015/7/26 11:40:00
--  

参做个例子参考一下吗?

 


--  作者:大红袍
--  发布时间:2015/7/26 12:01:00
--  

 AfterEdit事件代码

 

If e.Col.Name = "第二列"
    Dim tb As Table = e.Table
    tb.Grid.AllowMerging = C1.Win.C1FlexGrid.AllowMergingEnum.Custom
    tb.grid.MergedRanges.Clear
    Dim pidx As Integer = -1
    For Each r As Row In tb.Rows
        If r("第二列") = True Then
            If pidx = -1 Then
                pidx = r.Index + 1
            End If
        Else
            If pidx <> -1 Then
                Dim rng As C1.Win.C1FlexGrid.CellRange = tb.Grid.GetCellRange(pidx, 3, r.Index, 3)
                tb.Grid.MergedRanges.Add(rng)
                pidx = -1
            End If
        End If
    Next
    If pidx <> -1 Then
        Dim rng As C1.Win.C1FlexGrid.CellRange = tb.Grid.GetCellRange(pidx, 3, tb.Rows.Count, 3)
        tb.Grid.MergedRanges.Add(rng)
    End If
End If