我的ultragrid
中包含多个列,其中包含用户定义的visible
和invisible
操作。现在我必须检查列是否是网格中的第一个column
。因为我有一些columns
在index
的帮助下明确绑定了我无法得到该列。始终显示与第一个相同的column
。
//代码
For Each UltraGridColumn In Me.TransactionsGrid.Rows.Band.Columns
'Get the first cell column in the grid
UltraGridCell = UltraGridRow.Cells(UltraGridColumn)
If ('Check Here') Then
'Set the cell image
UltraGridCell.Appearance.Image = My.Resources.Tran_comment_161
UltraGridCell.Appearance.ImageHAlign = HAlign.Right
UltraGridCell.Appearance.ImageVAlign = VAlign.Top
Else
UltraGridCell.Appearance.ResetImage()
End If
Next
如何实现这一目标?
答案 0 :(得分:1)
我正在添加一个替代答案,因为它回答了标题提出的问题,如果遇到这个问题,可能就是人们正在寻找的内容。
WinGrid将有一个或多个ColScrollRegions,它们提供一个可滚动的标题区域,而在ColScrollRegion之外有一个VisibleHeaders属性,它公开了滚动区域的可见标题。
请注意,即使网格向右滚动也可能不是网格中的第一列,这将提供第一个可见列。当滚动区域的滚动位置一直向左时,VisibleHeadersCollection中的第一个标题将返回网格中的第一列。
ColScrollRegions由DisplayLayout上的ColScrollRegions属性访问,您可以通过以下方式访问第一个可见标头:
Me.ultraGrid1.DisplayLayout.ColScrollRegions(0).VisibleHeaders(0).Header
如果标题是ColumnHeader,那么它会将Column公开为属性。
答案 1 :(得分:0)
修改强> 此代码将为您提供第一个可见的列。
Dim firstCol As UltraGridColumn = Nothing
For Each col As UltraGridColumn In TransactionsGrid.DisplayLayout.Bands(0).Columns
If Not col.Hidden Then
firstCol = col
Exit For
End If
Next
If firstCol IsNot Nothing Then
'Your code here
End If
答案 2 :(得分:0)
使用标志来检查选择了哪个列,此代码可以正常工作。
For Each UltraGridColumn In Me.TransactionsGrid.Rows.Band.Columns
'Get the first cell column in the grid
UltraGridCell = UltraGridRow.Cells(UltraGridColumn)
If ('Check Here') Then
'Set the cell image
UltraGridCell.Appearance.Image = My.Resources.Tran_comment_161
UltraGridCell.Appearance.ImageHAlign = HAlign.Right
UltraGridCell.Appearance.ImageVAlign = VAlign.Top
Else
UltraGridCell.Appearance.ResetImage()
End If
Next
If (blnFlag) Then
Dim i = 0
For Each UltraGridColumn In Me.TransactionsGrid.Rows.Band.Columns
'Get the first cell of the column in the grid
UltraGridCell = UltraGridRow.Cells(UltraGridColumn)
If (UltraGridColumn.Hidden = False And i = 0) Then
'Set the cell image
UltraGridCell.Appearance.Image = My.Resources.Tran_comment_161
UltraGridCell.Appearance.ImageHAlign = HAlign.Right
UltraGridCell.Appearance.ImageVAlign = VAlign.Top
i += 1
Else
'Reset the image if other column
UltraGridCell.Appearance.ResetImage()
End If
Next
End If