Получить первый видимый столбец в Ultragrid
У меня есть количество столбцов в моем 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
Как этого добиться?
3 ответа
С флагом, чтобы проверить, какой столбец выбран, этот код работает нормально.
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
Я добавляю альтернативный ответ, поскольку он отвечает на вопрос, заданный названием, и может быть тем, что ищут люди, если сталкиваются с этим вопросом.
WinGrid будет иметь один или несколько ColScrollRegions, которые дают прокручиваемую область заголовков, а вне ColScrollRegion есть свойство VisibleHeaders, которое предоставляет видимые заголовки для области прокрутки.
Обратите внимание, что это обеспечит первый видимый столбец, даже если сетка прокручена вправо и может не быть первым столбцом в сетке. Когда позиция прокрутки области прокрутки будет полностью влево, тогда первый заголовок в VisibleHeadersCollection вернет первый столбец в сетке.
Доступ к ColScrollRegions осуществляется через свойство ColScrollRegions в DisplayLayout, и вы можете получить доступ к первому видимому заголовку с помощью:
Me.ultraGrid1.DisplayLayout.ColScrollRegions(0).VisibleHeaders(0).Header
Если заголовок является ColumnHeader, то он будет представлять столбец как свойство.
РЕДАКТИРОВАТЬ: Этот код даст вам первый видимый столбец.
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