FLEXGRID WORWRAP
Olá a Todos
Estou tentando bolar uma quebra de linha em um flexgrid.
Baseado neste exemplo onde num fom coloquei um flex grid e um command buton:
Private Sub botao_Click()
Grade.Row = 0
Grade.Col = 0
Grade.CellFontBold = True
Grade.Text = [Ô]Orientações sobre as regras para consolidação dos débitos.[Ô]
Grade.ColWidth(0) = 3840
Grade.Row = 1
Grade.Col = 0
Grade.ColWidth(0) = Grade.Width - 400
Grade.Text = [Ô]Pessoas JurÃdicas optantes pelas modalidades de parcelamento previstas [Ô] & _
[Ô]nos arts 1º ou 3º da Lei nº 11.941/2009 ou pelos arts. 1º ou 3º da MP nº 449/2008[Ô]
letras = Len(Texto)
Grade.RowHeight(1) = 500
Grade.WordWrap = True
End Sub
Com a função wordwrap ele funciona legal só que :
como calcular a altura da linha ,para que o texto ao chegar no final ele pule para a proxima .
Por exemplo uma linha = Grade.RowHeight(1) = 250
Duas linhas = 250 + 250+500 que é o q está no exemplo
Tres linhas = 750
Estou tentando bolar uma quebra de linha em um flexgrid.
Baseado neste exemplo onde num fom coloquei um flex grid e um command buton:
Private Sub botao_Click()
Grade.Row = 0
Grade.Col = 0
Grade.CellFontBold = True
Grade.Text = [Ô]Orientações sobre as regras para consolidação dos débitos.[Ô]
Grade.ColWidth(0) = 3840
Grade.Row = 1
Grade.Col = 0
Grade.ColWidth(0) = Grade.Width - 400
Grade.Text = [Ô]Pessoas JurÃdicas optantes pelas modalidades de parcelamento previstas [Ô] & _
[Ô]nos arts 1º ou 3º da Lei nº 11.941/2009 ou pelos arts. 1º ou 3º da MP nº 449/2008[Ô]
letras = Len(Texto)
Grade.RowHeight(1) = 500
Grade.WordWrap = True
End Sub
Com a função wordwrap ele funciona legal só que :
como calcular a altura da linha ,para que o texto ao chegar no final ele pule para a proxima .
Por exemplo uma linha = Grade.RowHeight(1) = 250
Duas linhas = 250 + 250+500 que é o q está no exemplo
Tres linhas = 750
Como fica ao diminuir o form
O objeto Form e Printer tem uma função chamada TextHeight que calcula a altura do texto. Teste aÃ
Grade.RowHeight(1) = Me.TextHeight([Ô]Seu texto[Ô])
Rico eu faço assim:
coloca um label com
AutoSize = true
WordWrap = True
Coloca a fonte (tipo e tamanho) iguais no label e no grid.
Depois na hora de preencher seu grid, passa o texto para o label, pega a altura do label e passa para a linha que vai preencher, depois associa os dados nas respectivas colunas, repita o processo para cada linha, lembrando antes de limpar a label para voltar ao tamanho original, fica mais ou menos assim:
lblAlturaLinha.Width = .ColWidth(2)
lblAlturaLinha.Caption = txtDescricao.Text
grid.RowHeight(grid.RowSel) = lblAlturaLinha.Height + 30
coloca um label com
AutoSize = true
WordWrap = True
Coloca a fonte (tipo e tamanho) iguais no label e no grid.
Depois na hora de preencher seu grid, passa o texto para o label, pega a altura do label e passa para a linha que vai preencher, depois associa os dados nas respectivas colunas, repita o processo para cada linha, lembrando antes de limpar a label para voltar ao tamanho original, fica mais ou menos assim:
lblAlturaLinha.Width = .ColWidth(2)
lblAlturaLinha.Caption = txtDescricao.Text
grid.RowHeight(grid.RowSel) = lblAlturaLinha.Height + 30
Tópico encerrado , respostas não são mais permitidas