以文本方式查看主题 - 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变色
当我把第一行和第二行合并的时候,就不会按照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 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 -- 没有的。作为合并单元格的列,整个列都不要设置颜色算了 |