Ir para conteúdo
Fórum Script Brasil
  • 0

Do Visual Basic 6 Para O 2005


kuroi

Pergunta

tem uns codigos q eu fazia em vb6 q não consegui fazer funcionar em 2005.

por exemplo, pra selecionar o texto de uma textbox quando ganha o foco, eu fazia assim:

Private Sub Text1_GotFocus()
    Text1.SelStart = 0
    Text1.SelLength = Len(Text1.Text)
End Sub
no 2005, tentei assim e não funcionou, ele não seleciona o texto, porque?
    Private Sub TextBox1_GotFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox1.GotFocus
        TextBox1.SelectionStart = 0
        TextBox1.SelectionLength = Len(TextBox1.Text)
    End Sub
e pra passar pra proxima textbox quando o cara der enter, eu fazia assim:
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
    If KeyCode = 13 Then SendKeys "{TAB}"
End Sub
no 2005, consegui chegar ate aqui:
    Private Sub Form1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
        If e.KeyCode = 13 Then
    End Sub

mas como continuo esse if?

Link para o comentário
Compartilhar em outros sites

14 respostass a esta questão

Posts Recomendados

  • 0

    Private Sub Form1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
        If e.KeyCode = 13 Then
    End Sub
mas como continuo esse if?
esse eu descobri:
   Private Sub Form1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
       If e.KeyCode = 13 Then System.Windows.Forms.SendKeys.Send("{TAB}")
   End Sub

e pra selecionar o texto?

Link para o comentário
Compartilhar em outros sites

  • 0

descobri.

não precisa do textBox1.HideSelection = false não.

percebi q do jeito q estava antes ele sempre selecionava quando eu ia de um campo pra outro usando TAB, mas não selecionava quando eu clicava.

então copiei o mesmo codigo para o evento click.

mas devia funcionar apenas no gotfocus, não devia?

alguém sabe se tem algum jeito sem ter q copiar no evento click?

valeu bruno.

Link para o comentário
Compartilhar em outros sites

  • 0

Coloque a rotina para ser executada também pelo evento Click, exemplo:

    Private Sub TextBox1_GotFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox1.GotFocus, TextBox1.Click
        TextBox1.SelectionStart = 0
        TextBox1.SelectionLength = TextBox1.Text.Length
    End Sub

Note a presença do nome do evento após o Handles. Se quiser utilizar este mesmo código para várias textboxes você pode substituir o nome "TextBox1", de dentro do código, por "sender" e colocar os eventos GotFocus e Click de todas as caixas no Handles.

Abraços,

Grraymalkin

Link para o comentário
Compartilhar em outros sites

  • 0

Graymalkin, sem querer ser chato, não gosto da sua mania de ficar fechando posts. primeiro porque não vejo vantagem nisso. e depois, porque apesar desse post http://scriptbrasil.com.br/forum/index.php...topic=74461&hl= ser velho, ainda não está resolvido e eu podia ter continuado nele, assim ia ficar mais facil de quem ler entender qual é minha dúvida. mas beleza.

é o seguinte, o código que você passou da outra vez:

   Private Sub TextBox1_GotFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox1.GotFocus, TextBox1.Click
       TextBox1.SelectionStart = 0
       TextBox1.SelectionLength = TextBox1.Text.Length
   End Sub[/code]

quando você me falou pra chamar o evento também no click do textbox funcionou certinho, mas hj vi que tem um problema.

se eu clico no textbox sendo que eu já estou com o foco nele, ele também seleciona o texto. e isso não pode acontecer!! tipo, se eu estou escrevendo um texto qualquer e vejo que errei alguma coisa no comeco e clico com o mouse onde eu quero por o cursor ele vai selecionar o texto todo. ou se, por exemplo, quero selecionar só um pedaco do texto (com o mouse), também não consigo, ele vai selecionar o texto todo.

sera que não tem jeito mesmo?? tentei fazer com que quando chamasse esse evento (ou o evento de selecionar de qualquer outra textbox), ele gravasse o nome da textbox numa variavel e ele so iria selecionar o texto caso o conteudo dessa variavel fosse diferente do nome da textbox. mas so funcionou no GotFocus. no click, parece que ele seleciona mas desseleciona logo em seguida. outra coisa é que esse esquema de variavel é muito tonto, já que eu teria que mudar o conteudo dela em cada gotfocus de cada controle.

não tem um jeito simples não???

Link para o comentário
Compartilhar em outros sites

  • 0

Graymalkin, sem querer ser chato, não gosto da sua mania de ficar fechando posts. primeiro porque não vejo vantagem nisso.

Bom, na minha humilde concepção existem razões para um tópico ser fechado. A mais importante delas é não aglutinar diferentes assuntos sob um mesmo título. O caboclo vai e coloca no título "Como fazer X?" aí a gente vai e responde como fazer o "X". E, depois, no mesmo tópico ele pergunta como fazer "Y". Uma pessoa que olhe o título do tópico nunca vai imaginar que ali tem a resposta para "X" e "Y", mas sim apenas para "X" (que é o *alvo* do tópico). E, eu só fecho um tópico depois que quem perguntou confirma que solucionou o problema OU após uma semana ou mais desde que respondi e quem perguntou não veio confirmar, porém eu tenho certeza de que a resposta é correta. Em caso de dúvidas, eu *sempre* deixo o tópico aberto. Outra razão é: lembra daquele inferno de spams em tópicos de outras eras? Se os mesmos estivessem fechados (e eu mesmo fechei um monte deles na sala de VB), o problema teria sido bem menor.

e depois, porque apesar desse post http://scriptbrasil.com.br/forum/index.php...topic=74461&hl= ser velho, ainda não está resolvido e eu podia ter continuado nele, assim ia ficar mais facil de quem ler entender qual é minha dúvida. mas beleza.

Como eu disse anteriormente, me pareceu resolvido. E eu esperei pelo menos uma semana ou mais para fechar o tópico, e não creio que você só tenha visto a resposta depois que o mesmo foi fechado.

De qualquer maneira, como você pode ver, o tópico está reaberto e mesclado com o seu novo. :)

é o seguinte, o código que você passou da outra vez:

   Private Sub TextBox1_GotFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox1.GotFocus, TextBox1.Click
       TextBox1.SelectionStart = 0
       TextBox1.SelectionLength = TextBox1.Text.Length
   End Sub

quando você me falou pra chamar o evento também no click do textbox funcionou certinho, mas hj vi que tem um problema.

se eu clico no textbox sendo que eu já estou com o foco nele, ele também seleciona o texto. e isso não pode acontecer!! tipo, se eu estou escrevendo um texto qualquer e vejo que errei alguma coisa no comeco e clico com o mouse onde eu quero por o cursor ele vai selecionar o texto todo. ou se, por exemplo, quero selecionar só um pedaco do texto (com o mouse), também não consigo, ele vai selecionar o texto todo.

sera que não tem jeito mesmo?? tentei fazer com que quando chamasse esse evento (ou o evento de selecionar de qualquer outra textbox), ele gravasse o nome da textbox numa variavel e ele so iria selecionar o texto caso o conteudo dessa variavel fosse diferente do nome da textbox. mas so funcionou no GotFocus. no click, parece que ele seleciona mas desseleciona logo em seguida. outra coisa é que esse esquema de variavel é muito tonto, já que eu teria que mudar o conteudo dela em cada gotfocus de cada controle.

não tem um jeito simples não???

Realmente, testei aqui e deu o mesmo problema. Vou dar uma olhada aqui pra ver se consigo fazer algo a respeito e te retorno.

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0

Bom, na minha humilde concepção existem razões para um tópico ser fechado. A mais importante delas é não aglutinar diferentes assuntos sob um mesmo título. O caboclo vai e coloca no título "Como fazer X?" aí a gente vai e responde como fazer o "X". E, depois, no mesmo tópico ele pergunta como fazer "Y". Uma pessoa que olhe o título do tópico nunca vai imaginar que ali tem a resposta para "X" e "Y", mas sim apenas para "X" (que é o *alvo* do tópico). E, eu só fecho um tópico depois que quem perguntou confirma que solucionou o problema OU após uma semana ou mais desde que respondi e quem perguntou não veio confirmar, porém eu tenho certeza de que a resposta é correta. Em caso de dúvidas, eu *sempre* deixo o tópico aberto. Outra razão é: lembra daquele inferno de spams em tópicos de outras eras? Se os mesmos estivessem fechados (e eu mesmo fechei um monte deles na sala de VB), o problema teria sido bem menor.

certo... concordo em partes...

Como eu disse anteriormente, me pareceu resolvido. E eu esperei pelo menos uma semana ou mais para fechar o tópico, e não creio que você só tenha visto a resposta depois que o mesmo foi fechado.

De qualquer maneira, como você pode ver, o tópico está reaberto e mesclado com o seu novo. :)

na época eu não tinha percebido o problema. como fiquei bastante tempo sem mexer com o 2005, so fui reparar esses dias. valeu por ter juntado, nem sabia que moderador tinha poder pra fazer uma coisa assim...

Realmente, testei aqui e deu o mesmo problema. Vou dar uma olhada aqui pra ver se consigo fazer algo a respeito e te retorno.

valeu pela atencao. estranho... parece ser uma coisa tão comum, sera que ninguém nunca teve um problema assim???

valeu, se eu arrumar uma solucao eu posto.

Link para o comentário
Compartilhar em outros sites

  • 0
certo... concordo em partes...

:)

na época eu não tinha percebido o problema. como fiquei bastante tempo sem mexer com o 2005, so fui reparar esses dias. valeu por ter juntado, nem sabia que moderador tinha poder pra fazer uma coisa assim...

Sim, sim, nós temos esses tipos de super-poderes... :P

valeu pela atencao. estranho... parece ser uma coisa tão comum, sera que ninguém nunca teve um problema assim???

valeu, se eu arrumar uma solucao eu posto.

Ainda não achei a solução, mas já sei qual é o problema. O evento Click de uma caixa de texto do VB6 tem um comportamento diferente dos eventos Click e/ou MouseClick de uma caixa de texto de um Windows Forms. Em ambos os casos o evento Click é executado depois do evento GotFocus. O problema no caso da TextBox .NET é que no evento Click ela muda a seleção do cursor para a posição onde foi clicada, em todos os casos. A TextBox do VB6 só faz isso quando o controle já tem o foco, do contrário ela executa o evento GotFocus e o evento Click não faz nada. O negócio agora é conseguir simular este mesmo comportamento na TextBox .NET.

Bom, vou continuar tentando. ;)

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0
Guest - Gilberto -

É simples pessoal. Crie no VB6 um projeto com formulario e algumas caixas de texto.

Coloque o codigo para selecionar e para mudar o foco.

Salva o projeto e abra-o no VB 2005, quando ele coverter o formato

você pega o codigo!

Valeu!!!!!!!!!!!!!!!!!

Link para o comentário
Compartilhar em outros sites

  • 0

ai ele volta esse codigo:

    Private Sub TextBox1_GotFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox1.GotFocus
       TextBox1.SelectionStart = 0
       TextBox1.SelectionLength = Len(TextBox1.Text)
   End Sub[/code]

Link para o comentário
Compartilhar em outros sites

  • 0

É simples pessoal. Crie no VB6 um projeto com formulario e algumas caixas de texto.

Coloque o codigo para selecionar e para mudar o foco.

Salva o projeto e abra-o no VB 2005, quando ele coverter o formato

você pega o codigo!

Isso não vai adiantar, como o kuroi mostrou acima, já que a lógica utilizada é a mesma em ambos, porém os resultados é que são diferentes.

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...