CABECALHO DO MSHFLEXGRID
Pessoal,
Recentemente perguntei a comunidade sobre a diferença e as vantagens entre utilizar um MSHFLEXGRID e MSFLEXGRID. Considerações a parte resolvi utilizar um MSHFLEXGRID. Porém surgiu uma situação que já pesquisei no fórum e já realizei inúmeros testes em busca de uma solução e não consegui resultado satisfatório. Segue abaixo parte do código que estou utilizando para montar o cabeçalho do componente:
.ColHeader(0) = flexColHeaderOn
.ColAlignmentHeader(0) = 4
.ColWidth(0) = 200
.ColHeader(1) = flexColHeaderOn
.ColHeaderCaption(0, 1) = [Ô]CÓDIGO[Ô]
.ColWidth(1) = 0
.ColAlignmentHeader(1) = 4
.ColHeader(2) = flexColHeaderOn
.ColHeaderCaption(0, 2) = [Ô]CÓDIGO[Ô]
.ColWidth(2) = 1500
.ColAlignmentHeader(2) = 4
.ColHeader(3) = flexColHeaderOn
.ColHeaderCaption(0, 3) = [Ô]GRUPO[Ô]
.ColWidth(3) = 3950
.ColAlignmentHeader(3) = 1
.ColHeader(4) = flexColHeaderOn
.ColHeaderCaption(0, 4) = [Ô]COMPOSTO[Ô]
.ColWidth(4) = 1500
.ColAlignmentHeader(4) = 1
Após montar o cabeçalho eu preencho o componente com os dados necessários. O problema ocorre quando eu clico no cabeçalho. Ao clicar no cabeçalho o componente seleciona a ultima linha preenchida do grid. Alguém sabe me explica o por quê deste comportamento?
Gostaria que não ocorresse isso.
Aguardando respostas.
Recentemente perguntei a comunidade sobre a diferença e as vantagens entre utilizar um MSHFLEXGRID e MSFLEXGRID. Considerações a parte resolvi utilizar um MSHFLEXGRID. Porém surgiu uma situação que já pesquisei no fórum e já realizei inúmeros testes em busca de uma solução e não consegui resultado satisfatório. Segue abaixo parte do código que estou utilizando para montar o cabeçalho do componente:
.ColHeader(0) = flexColHeaderOn
.ColAlignmentHeader(0) = 4
.ColWidth(0) = 200
.ColHeader(1) = flexColHeaderOn
.ColHeaderCaption(0, 1) = [Ô]CÓDIGO[Ô]
.ColWidth(1) = 0
.ColAlignmentHeader(1) = 4
.ColHeader(2) = flexColHeaderOn
.ColHeaderCaption(0, 2) = [Ô]CÓDIGO[Ô]
.ColWidth(2) = 1500
.ColAlignmentHeader(2) = 4
.ColHeader(3) = flexColHeaderOn
.ColHeaderCaption(0, 3) = [Ô]GRUPO[Ô]
.ColWidth(3) = 3950
.ColAlignmentHeader(3) = 1
.ColHeader(4) = flexColHeaderOn
.ColHeaderCaption(0, 4) = [Ô]COMPOSTO[Ô]
.ColWidth(4) = 1500
.ColAlignmentHeader(4) = 1
Após montar o cabeçalho eu preencho o componente com os dados necessários. O problema ocorre quando eu clico no cabeçalho. Ao clicar no cabeçalho o componente seleciona a ultima linha preenchida do grid. Alguém sabe me explica o por quê deste comportamento?
Gostaria que não ocorresse isso.
Aguardando respostas.
tente colocar estas propriedades e veja o resultado
MSHFlexgrid1.HighLight = flexHighlightWithFocus
MSHFlexgrid1.FocusRect = flexFocusNone
Marcelo continua com o mesmo problema. Se eu clicar no cabeçalho a última linha preenchida do grid é selecionada
olha só clique com o botão direito sobre o mshflexgrid, e depois em propriedades.
faça as alterações sugeridas
da forma que sugeri quando clicar sobre o titulo da coluna a esta se destacara, e caso contrario somente a celula em que clicar ficara destacada.
faça as alterações sugeridas
da forma que sugeri quando clicar sobre o titulo da coluna a esta se destacara, e caso contrario somente a celula em que clicar ficara destacada.
Marcelo,
Continua o problema, inclusive tentei até via código em tempo de execução e não resolveu ainda.
Continua o problema, inclusive tentei até via código em tempo de execução e não resolveu ainda.
Bom, vou aproveitar o tópico e fazer outra pergunta. é possÃvel manter o cabeçalho do controle sempre visÃvel?
Aguardando notÃcias.
Aguardando notÃcias.
Para o MSFLEXGRID, tente como mostra o exemplo abaixo:
Private Sub CabecalhodoGridAgenda()
[ô] configuar o GridAgenda
With GridAgenda
.GridLines = flexGridFlat
.FixedRows = 1
.FixedCols = 1 [ô]certo 0
.ScrollBars = flexScrollBarBoth
.AllowUserResizing = flexResizeColumns
.CellFontBold = True
.Cols = 6 [ô] Número de colunas(incluindo o cabecalho)
.Rows = 1 [ô] Número de linhas(com cabecalho)
.TextArray(0) = [Ô]Status[Ô]
.ColWidth(0) = 700 [ô] Largura da coluna 0
.ColAlignment(0) = 3
.TextArray(1) = [Ô]Código[Ô]
.ColWidth(1) = 780
.ColAlignment(1) = 3 [ô]flexAlignRightBottom
.TextArray(2) = [Ô]Nome do Paciente[Ô] [ô]5500
.ColWidth(2) = 5800 [ô]6200
.ColAlignment(2) = 1
[ô]
.TextArray(3) = [Ô]Data da Consulta[Ô]
.ColWidth(3) = 1800
.ColAlignment(3) = 3
[ô]
.TextArray(4) = [Ô]Hora da Consulta[Ô]
.ColWidth(4) = 1800
.ColAlignment(4) = 3
.TextArray(5) = [Ô]Realizado[Ô]
.ColWidth(5) = 1200
.ColAlignment(5) = 3
[ô]
End With
Dim I
[ô]coloca o cabeçalho em negrito
With GridAgenda
.Row = 0 [ô]Primeira linha do FlexGrid
For I = 0 To .Cols - 1
.col = I
.CellFontBold = True
.CellForeColor = Branco [ô]RGB(201, 16, 23) [ô]&HFFFFFF
.CellBackColor = &HC0C0C0 [ô]&H404040
.CellFontSize = 11
.CellFontName = [Ô]times new roman[Ô]
.RowHeight(0) = 315
Set .CellPicture = ImgList_Grid.ListImages(2).Picture
Next I
End With
End Sub
Private Sub CabecalhodoGridAgenda()
[ô] configuar o GridAgenda
With GridAgenda
.GridLines = flexGridFlat
.FixedRows = 1
.FixedCols = 1 [ô]certo 0
.ScrollBars = flexScrollBarBoth
.AllowUserResizing = flexResizeColumns
.CellFontBold = True
.Cols = 6 [ô] Número de colunas(incluindo o cabecalho)
.Rows = 1 [ô] Número de linhas(com cabecalho)
.TextArray(0) = [Ô]Status[Ô]
.ColWidth(0) = 700 [ô] Largura da coluna 0
.ColAlignment(0) = 3
.TextArray(1) = [Ô]Código[Ô]
.ColWidth(1) = 780
.ColAlignment(1) = 3 [ô]flexAlignRightBottom
.TextArray(2) = [Ô]Nome do Paciente[Ô] [ô]5500
.ColWidth(2) = 5800 [ô]6200
.ColAlignment(2) = 1
[ô]
.TextArray(3) = [Ô]Data da Consulta[Ô]
.ColWidth(3) = 1800
.ColAlignment(3) = 3
[ô]
.TextArray(4) = [Ô]Hora da Consulta[Ô]
.ColWidth(4) = 1800
.ColAlignment(4) = 3
.TextArray(5) = [Ô]Realizado[Ô]
.ColWidth(5) = 1200
.ColAlignment(5) = 3
[ô]
End With
Dim I
[ô]coloca o cabeçalho em negrito
With GridAgenda
.Row = 0 [ô]Primeira linha do FlexGrid
For I = 0 To .Cols - 1
.col = I
.CellFontBold = True
.CellForeColor = Branco [ô]RGB(201, 16, 23) [ô]&HFFFFFF
.CellBackColor = &HC0C0C0 [ô]&H404040
.CellFontSize = 11
.CellFontName = [Ô]times new roman[Ô]
.RowHeight(0) = 315
Set .CellPicture = ImgList_Grid.ListImages(2).Picture
Next I
End With
End Sub
Irenko,
Obrigado pela atenção. Mas acho que me expressei mal. O que acontece é que quando tenho uma grande quantidade de dados no grid e preciso verificar dados que estão mais abaixo o cabeçalho do Grid não acompanha a pesquisa. Em suma o cabeçalho é estático. Como não conheço todos os comandos do componente e não achei nada na internet sobre talvez você possam me dar uma dica.
Não abusando se puder me responder sobre a primeira dúvida também agradeceria.
Aguardando notÃcias.
Obrigado pela atenção. Mas acho que me expressei mal. O que acontece é que quando tenho uma grande quantidade de dados no grid e preciso verificar dados que estão mais abaixo o cabeçalho do Grid não acompanha a pesquisa. Em suma o cabeçalho é estático. Como não conheço todos os comandos do componente e não achei nada na internet sobre talvez você possam me dar uma dica.
Não abusando se puder me responder sobre a primeira dúvida também agradeceria.
Aguardando notÃcias.
Eu realmente nã entendi bem a sua dúvida, mas vai anexo 03 exemplos praticos de montar um FlexGrid. Espero ter ajudado.
Valeu irenko,
Mas eu estou utilizando o MSHFlexGrid, talvez seja isso que esteja havendo confusão. Mas os exemplos que você me enviou e os testes me mostraram que MSFlexGrid se comporta de forma diferente, apesar de apresentar o mesmo problema que solicitei inicialmente.
Fechando o tópico.
Mas eu estou utilizando o MSHFlexGrid, talvez seja isso que esteja havendo confusão. Mas os exemplos que você me enviou e os testes me mostraram que MSFlexGrid se comporta de forma diferente, apesar de apresentar o mesmo problema que solicitei inicialmente.
Fechando o tópico.
Tópico encerrado , respostas não são mais permitidas