Ajuda - Busca - Membros - Calendário
Versão Completa: Quebra de linha (VB.NET)
Fórum Script Brasil > Programação & Desenvolvimento > .NET
Xistyle
Camaradas, boa tarde!

Estou com uma dúvida lógica e não sei muito bem como resolvê-la. Preciso delimitar o tamanho de um texto em uma quantidade x de letras, mas também não posso cortar as palavras.

Basicamente preciso de um algoritmo para simular o Quebra de linha automática/Word Wrap" do Notepad.
Alguém tem alguma idéia?

Abraços
Gafanhoto
Olha, acho que não tem como, porque senão tem que ter um dicionário pra verificar palavra por palavra.

E mesmo assim daria BUG, porque o cara no fim da frase vai escrever a palavra SEJA mas o campo só vai até o SE.

SE é uma palavra válida e iria passar tranquilo.

Acho que não tem como fazer o que tu está tentando. Se tiver quero saber também.
Xistyle
É Gafanhoto! Também não achei nada na net.
Vou tentar montar uma funçãozinha aqui e daqui a pouco posto ela smile.gif
Xistyle
É não deu muito o que quis fazer... tentei fazer uma verificação da palavra, pela proximidade do espaço. Pega a palavra cortada, busca o próximo espaço, pega o resto da palavra e concatena. Ai insere a quebra de linha.
Mas não deu muito certo :/

Vou procurar outra forma de fazer...
Xistyle
Bom se alguém tiver idéia de como me ajudar de outra forma então, está bem vindo...
Tenho uma TreeView. Gostaria de, ao clicar em um nó da TreeView, que fosse mostrado um Panel.

O problema é que gostaria de usar alguns recursos gráficos. No evento Paint desse Panel, coloquei algumas rotinas pra (espero) abrir o panel em Smooth.

Agora... como devo chamar esse evento? Em que momento ele é chamado?
kuroi
QUOTE(Xistyle @ 10/03/2010 - 11:52) *
É não deu muito o que quis fazer... tentei fazer uma verificação da palavra, pela proximidade do espaço. Pega a palavra cortada, busca o próximo espaço, pega o resto da palavra e concatena. Ai insere a quebra de linha.
Mas não deu muito certo :/

Vou procurar outra forma de fazer...

xistyle, to sem .net no pc q to usando no momento, mas fiz um codigo aqui no vb6, você pode pegar a logica e converter, mas acho q vai ficar quase tudo a mesma coisa:
CODE
Private Sub Command1_Click()
    Dim cpl As Integer, p As Integer
    Dim txt As String, l As String
    
    cpl = 20 'caracteres por linha
    txt = Text1.Text
    l = ""
    
    Do While Len(txt) > cpl
        l = l & Left(txt, cpl)
        txt = Mid(txt, cpl + 1)
        
        p = InStr(txt, " ")
        
        If p = 0 Then
            l = l & txt
            txt = ""
        Else
            l = l & Left(txt, p) & vbCrLf
            txt = Mid(txt, p + 1)
        End If
    Loop
    l = l & txt
    
    Text1.Text = l
End Sub


isso ai quebra linha no primeiro espaco q encontrar a cada 20 caracteres num textbox.
veja ai se não é isso q você queria.
Xistyle
Ainda tô apanhando desse VB.NET... preciso tirar mais uma dúvida que parece óbvio, mas não consigo enxergar.
Tenho uma DataGridView. Ela carrega as informações de um DataTable. Inicialmente, na grid, são carregados apenas alguns dados.
Ao clicar em uma linha, as demais informações são carregadas em seus respectivos TextBoxes.
Isso ocorre no evento CellClick da Grid.
Gostaria que, ao pressionar a seta para baixo, fosse simulado o CellClick na linha de baixo. Usei o KeyDown para verificar a seta para baixo e chamei o CellClick da seguinte forma:

CODE
Private Sub dgvResultado_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles dgvResultado.KeyDown
Dim eDataGridEvents As System.Windows.Forms.DataGridViewCellEventArgs

    If e.KeyValue = Keys.Down Then
        dgvResultado_CellClick(dgvResultados, eDataGridEvents)
    End If

End Sub


Porém, se na Grid a linha selecionada tem Index = 2, no KeyDown ele vale 1. Como arrumar isso?
Esta é uma versão simplificada de nosso conteúdo principal. Para ver a versão completa com maiores informações, formatação e imagens, por favor clique aqui.
Invision Power Board © 2001-2012 Invision Power Services, Inc.