COLAR EM CAMPO TEXTO

ARNALDOCRUZ 13/12/2011 02:40:39
#391200
Boa noite

colegas tem algum jeito de fazer o que descrevo abaixo ?

tenho 17 campos com tamanho de 78 caracteres. que dá um total de 1326 caracteres

digamos que eu cole no campo 1 um texto com 900 caracteres.

tem como distribuir o texto colado pelos campos

tipo campo 01 78 caracteres
campo 02 + 78 caracteres
campo 03 + 78 caractes e por ai vai até completar os 900 caracteres

obrigado
KERPLUNK 13/12/2011 09:17:27
#391210
Se o campo está com o tamanho máximo determinado, vc não vai conseguir fazer isso. Porque a API que controla o [Ô]maxlength[Ô] vai executar ANTES de terminar de trazer os dados da área de transferência. Ou seja, mesmo que vc use o evento [Ô]Change[Ô] ou coisa que o valha, vai ter somente os 78 caracteres. Uma saída seria colocar uma caixa de texto com o número de caracteres livre, assim, vai ter como colar e separar...
JABA 14/12/2011 16:21:49
#391362
ARNALDOCRUZ,

Eu criei dois métodos aqui baseado no que voce disse. Qualquer coisa, dá uma adaptada ao teu critério.
Dei uma opção caso voce queira eliminar os caracteres em branco. Jogue algumas textBoxs no Formulario limpo para testar.
Na hora de utilizar, voce poderia fazer da seguinte maneira:

[ô]Esse metodo vai preencher as textboxs do formulario de acordo com o que voce queria acima. Só que aqui em vez de preencher os textboxs com 78 caracteres, ele preencherá com 3, pois foi esse o argumento passado no metodo.

preencherTextBox(getPalavra([Ô]Rodrigo de Santana Porto[Ô], 3), Me)

ou assim para elimimar os caracteres em branco:

preencherTextBox(getPalavra([Ô]Rodrigo de Santana Porto[Ô], 3, True), Me)

[ô]Coloque esses metodos abaixo na sua classe
========================================================================================================================================
Public Function getPalavra(ByVal texto As String, quantidadeCaracteres As Integer, Optional ByVal eliminarCaracteresEmBranco As Boolean = False) As List(Of String)

If eliminarCaracteresEmBranco = True Then
texto = texto.Replace([Ô] [Ô], Nothing)
End If

Dim lista As New List(Of String)
For i As Integer = 0 To texto.Length - 1
If i + quantidadeCaracteres > texto.Length - 1 Then
lista.Add(texto.Substring(i, texto.Length - i))
Exit For
End If
lista.Add(texto.Substring(i, quantidadeCaracteres))
i = (i + quantidadeCaracteres) - 1
Next
Return lista
End Function

Public Sub preencherTextBox(lista As List(Of String), formulario As Form)
Dim x As Integer = 0
For Each controle As TextBox In formulario.Controls
For i As Integer = x To lista.Count - 1
controle.Text = lista(i)
x = i + 1
Exit For
Next
Next
End Sub

Testa ai e nos dá um retorno. Qualquer dúvida é só postar.
Vlw
Tópico encerrado , respostas não são mais permitidas