DATAGRID ESTILO ZEBRA?
ola amigos,
pesquisei bastante e não consegui achar uma solução para deixar um datagrid estilo zebra (cor sim cor não) rs
Alguem sabe como fazer?
Grato,
pesquisei bastante e não consegui achar uma solução para deixar um datagrid estilo zebra (cor sim cor não) rs
Alguem sabe como fazer?
Grato,
Leandro, olha datagrid eu tb não sei, más pq vc não utilizar o flexgrid e/ou msflexgrid, além de ter mais controle é mais simples.
Segue como zebrar um flexgrid
Function EImpar(ByVal iNum As Long) As Boolean
[ô]Verifica se o número é impar
[ô]Se for impar a função retorna True.
[ô]Se for par a função retorna False.
EImpar = (iNum Mod 2)
End Function
Sub FlexCores(lCorPar As Long, lCorImpar As Long)
Dim iLinha As Integer
SeuMSFlexGrid.FillStyle = flexFillRepeat
For iLinha = 1 To SeuMSFlexGrid.Rows - 1
With SeuMSFlexGrid
.Row = iLinha
If EImpar(iLinha) Then [ô]Se a linha for impar:
[ô]Seleciona a partir da primeira coluna
.Col = 1
[ô]Seleciona até a última coluna
.ColSel = .Cols - 1
[ô]Aplica a cor
.CellBackColor = lCorImpar
Else [ô]Se a linha for par:
[ô]Seleciona a partir da primeira coluna
.Col = 1
[ô]Seleciona até a última coluna
.ColSel = .Cols - 1
[ô]Aplica a cor
.CellBackColor = lCorPar
End If
End With
Next
SeuMSFlexGrid.FillStyle = flexFillSingle
End Sub
[ô]Sintaxe:
FlexCores(Cor das linhas pares, Cor das linhas impares)
[ô]Exemplo:
FlexCores(&HFFFFFF, &HC0FFFF)
Segue como zebrar um flexgrid
Function EImpar(ByVal iNum As Long) As Boolean
[ô]Verifica se o número é impar
[ô]Se for impar a função retorna True.
[ô]Se for par a função retorna False.
EImpar = (iNum Mod 2)
End Function
Sub FlexCores(lCorPar As Long, lCorImpar As Long)
Dim iLinha As Integer
SeuMSFlexGrid.FillStyle = flexFillRepeat
For iLinha = 1 To SeuMSFlexGrid.Rows - 1
With SeuMSFlexGrid
.Row = iLinha
If EImpar(iLinha) Then [ô]Se a linha for impar:
[ô]Seleciona a partir da primeira coluna
.Col = 1
[ô]Seleciona até a última coluna
.ColSel = .Cols - 1
[ô]Aplica a cor
.CellBackColor = lCorImpar
Else [ô]Se a linha for par:
[ô]Seleciona a partir da primeira coluna
.Col = 1
[ô]Seleciona até a última coluna
.ColSel = .Cols - 1
[ô]Aplica a cor
.CellBackColor = lCorPar
End If
End With
Next
SeuMSFlexGrid.FillStyle = flexFillSingle
End Sub
[ô]Sintaxe:
FlexCores(Cor das linhas pares, Cor das linhas impares)
[ô]Exemplo:
FlexCores(&HFFFFFF, &HC0FFFF)
LEANDRO,
ESTA FUNÇÃO PEGUEI AQUI MESMO NO VBMANIA E EH EXCELENTE
<<< NO FORM >>>
ZebraFlex MSFlexGrid1, &HE0E0E0
[ô]DEPOIS DA VIRGULA EH A COR Q VC QUER Q A LINHA FIQUE
[ô]<<< NO MODULO >>>
Public Sub ZebraFlex(ByVal flx As MSFlexGridLib.MSFlexGrid, Optional ByVal CorZ As Long = vbInfoBackground)
Dim i As Integer, j As Integer, ImpPar As Integer
With flx
ImpPar = (.FixedRows Mod 2)
.Redraw = False
[ô]Loop para ler todas as linhas menos as fixas
For i = .FixedRows To .Rows - 1
[ô]Seleciona a linha
.Row = i
[ô]Loop para ler todas as colunas do grid menos as fixas
For j = .FixedCols To .Cols - 1
[ô]Seleciona a coluna
.Col = j
[ô]Se o resto da divisão do nr da linha por 2 for diferente do ImpPar, então
[ô]pinta com a cor informada, se não pinta com a cor de fundo do grid
If (i Mod 2) <> ImpPar Then .CellBackColor = CorZ _
Else .CellBackColor = .BackColor
Next j
Next i
[ô]Redesenha o grid
.Redraw = True
End With
End Sub
ESTA FUNÇÃO PEGUEI AQUI MESMO NO VBMANIA E EH EXCELENTE
<<< NO FORM >>>
ZebraFlex MSFlexGrid1, &HE0E0E0
[ô]DEPOIS DA VIRGULA EH A COR Q VC QUER Q A LINHA FIQUE
[ô]<<< NO MODULO >>>
Public Sub ZebraFlex(ByVal flx As MSFlexGridLib.MSFlexGrid, Optional ByVal CorZ As Long = vbInfoBackground)
Dim i As Integer, j As Integer, ImpPar As Integer
With flx
ImpPar = (.FixedRows Mod 2)
.Redraw = False
[ô]Loop para ler todas as linhas menos as fixas
For i = .FixedRows To .Rows - 1
[ô]Seleciona a linha
.Row = i
[ô]Loop para ler todas as colunas do grid menos as fixas
For j = .FixedCols To .Cols - 1
[ô]Seleciona a coluna
.Col = j
[ô]Se o resto da divisão do nr da linha por 2 for diferente do ImpPar, então
[ô]pinta com a cor informada, se não pinta com a cor de fundo do grid
If (i Mod 2) <> ImpPar Then .CellBackColor = CorZ _
Else .CellBackColor = .BackColor
Next j
Next i
[ô]Redesenha o grid
.Redraw = True
End With
End Sub
Tópico encerrado , respostas não são mais permitidas