一列中的某一列是合并单元格。
并且根据同行的另外一列来drawcell变色
列A
| | 列B
| | | | | |
2024-04-1b | | | | | | | |
2024-04-1b | | Go | | | | | |
202-04-2s | | ng
| | | | | |
当我把第一行和第二行合并的时候,就不会按照Go进行drawcell的变色?
如何实现合并后,也能使得drawcell生效?除了分别赋值外
有个功能为设置颜色,根据当前的行和列,把信息赋值到单独的一个隐藏列(标记列)
然后通过drawcell将所有单元格都加上颜色。
设置颜色是在合并的模式下进行的,如何判断当前单元格和那些单元格合并了?
[此贴子已经被作者于2024/4/28 13:36:04编辑过]
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
如果每次点击设置颜色的功能都要遍历全表的所有合并的单元格,太浪费资源了。
有没有简单的办法获得当前的单元格是否合并,与那些区域合并?
没有的。作为合并单元格的列,整个列都不要设置颜色算了