以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  合并单元格与drawcell  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=191646)

--  作者:lur320
--  发布时间:2024/4/28 13:24:00
--  合并单元格与drawcell
一列中的某一列是合并单元格。

并且根据同行的另外一列来drawcell变色

  列A
     列B
               
   2024-04-1b                   
   2024-04-1b    Go               
   202-04-2s    ng 
               

当我把第一行和第二行合并的时候,就不会按照Go进行drawcell的变色?

如何实现合并后,也能使得drawcell生效?除了分别赋值外

--  作者:有点蓝
--  发布时间:2024/4/28 13:31:00
--  
只能是给另一列设置颜色,比如Go这个单元格
--  作者:lur320
--  发布时间:2024/4/28 13:34:00
--  


有个功能为设置颜色,根据当前的行和列,把信息赋值到单独的一个隐藏列(标记列)

然后通过drawcell将所有单元格都加上颜色。


 设置颜色是在合并的模式下进行的,如何判断当前单元格和那些单元格合并了?


[此贴子已经被作者于2024/4/28 13:36:04编辑过]

--  作者:lur320
--  发布时间:2024/4/28 13:46:00
--  
 

Dim tb2 As WinForm.Table = e.Form.Controls("Table2")
Dim tb As Table = tb2.Table

Dim a As  Integer = tb.TopRow+1
Dim b As  Integer = tb.LeftCol+1
Dim c As  Integer = tb.BottomRow+1
Dim d As  Integer = tb.RightCol+1
\'msgbox(a & b & c & d)
Dim rng As New List(of Object)
tb.Grid.AllowMerging = C1.Win.C1FlexGrid.AllowMergingEnum.Custom
For Each r As object In tb.Grid.MergedRanges
    \'msgbox(r.Toprow & r.leftcol & r.bottomrow & r.rightcol)
    If a >= r.TopRow AndAlso b >= r.LeftCol AndAlso c <= r.bottomRow AndAlso d <= r.rightCol OrElse a <= r.TopRow AndAlso b <= r.LeftCol AndAlso c >= r.bottomRow AndAlso d >= r.rightCol Then
        rng.add(r)
    End If
Next


如果每次点击设置颜色的功能都要遍历全表的所有合并的单元格,太浪费资源了。
有没有简单的办法获得当前的单元格是否合并,与那些区域合并?

--  作者:有点蓝
--  发布时间:2024/4/28 14:07:00
--  
没有的。作为合并单元格的列,整个列都不要设置颜色算了