1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

lista telefónica

Discussão em 'Programação' iniciada por estrafalhote, 4 de Agosto de 2007. (Respostas: 7; Visualizações: 2371)

  1. estrafalhote

    estrafalhote Power Member

    boas.

    estou a tentar criar uma simples lista telefónica no vb.net 2005, mas com uma pequena diferença é que eu criei uma espécie de teclado virtual, ou seija tenho vários command button com as letras ou numeros que lhe correspondem e atravez desses mesmos command buttons queria que ao clicar nele aparecesse na textbox correspondente a letra ou numero em que cliquei.
    já esperimentei atravéz do

    txtnome.text = "A"

    mas mal corri o programa vi que a letra aparecia mas quando carregava numa outra ela desaparecia para dar lugar à nova em que tinha clicado.

    [​IMG]

    aqui está a parte grafica do programa.
     
  2. HecKel

    HecKel The WORM

    Julgo que o VB.Net já permite isto.

    Experimenta isto:

    Código:
     txtnome.text += "A"
    Se não resultar, este resulta garantidamente:

    Código:
     txtnome.text = txtnome.text + "A"
    HecKel
     
  3. estrafalhote

    estrafalhote Power Member

    Código:
     txtnome.text = txtnome.text + "A"
    HecKel[/quote]

    obrigado heckel este deu

    já agora qual o código que utilizo para criar uma tecla de backspace?
     
  4. HecKel

    HecKel The WORM

    Simples, usas a função left, salvo erro, ou a mid, e substituis todo o texto pelo mesmo texto EXCEPTO a última posição.

    Explicando por exemplos:

    Código:
    txtnome.text = Mid(txtnome.text, 1, txtnome.text.length -1);
    Julgo que isto resulta.

    Para mais informações vê como funciona a função Mid.

    HecKel
     
  5. estrafalhote

    estrafalhote Power Member

    obrigado outra vez

    mas já agora como faço para utilizando os commandbutons para "escrever" numa textbox selecionada e nao na txtnome?
     
  6. HecKel

    HecKel The WORM

    É pá..., sinceramente não estou a ver nenhuma solução boa.

    Ideia à martelo:

    Na propriedade OnFocus (deve haver algo similar) guarda a informação de qual foi a textbox que seleccionaste numa variável global, após isso só tens de analisar essa variável e com um select case consegues fazer isso. Mas esta é a ideia à martelo..., não é a mais eficaz e sem qualquer sombra de dúvidas, não é nada extensível.

    HecKel
     
  7. estrafalhote

    estrafalhote Power Member

    ok

    obrigado na mesma pela ideia, vou investigar um pouco ver se encontro algo.
     
  8. alfinete

    alfinete Power Member

    variáveis
    ________________________
    Código:
     
    ' guarda o nome final
        Dim nome As String = ""
        ' guarda o nome do botão em causa
        Dim caracter As String
    
    botões
    __________________________________


    Código:
    
    
    
    
    
        Private Sub btnA_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnA.Click
            ' guarda o caracter do botão
            caracter = "a"
    
            ' caixa de texto = a função cria nome com o parametro caracter que guuada o caracter do botão
            Me.Txtnome.Text = cria_nome(caracter)
        End Sub
    
        Private Sub btnB_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnB.Click
            caracter = "b"
            Me.Txtnome.Text = cria_nome(caracter)
        End Sub
    
        Private Sub btnc_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnc.Click
            caracter = "c"
            Me.Txtnome.Text = cria_nome(caracter)
        End Sub
    
        Private Sub btnd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnd.Click
            caracter = "d"
    
    
            Me.Txtnome.Text = cria_nome(caracter)
    
    
        End Sub
    
    
    
    função generica que cria a string do nome

    Código:
         'função generica que pucha o caracter em causa atraves da variavel caract 
        'o nome é uma concatenação de nome com catact ou seja vai juntando os caracteres em causa
        ' retorna o nome 
        Function cria_nome(ByVal caract As String) As String
            nome = nome & caract
            Return nome
        End Function
    
    

    muito simples aqui esta uma solução para o teu problema

    criei um form com 4 botões

    de caracteres "a","b", "c","d" como podes ver no code

    duas vars uma que guarda o caracter de cada botão - "caracter"
    e outra para criar a string do nome neste caso - "nome"

    depois uma função para criar o nome para não estar a repetir o mesmo codigo em cada botão

    e por fim em cada botão chamar essa função com o respectivo parametro.

    se não quiseres utilizar a função pões em cada botão

    Código:
    
    caracter =x
    
    nome = nome & caracter
    
    txtnome=nome
    
    
    espero que ajude
     

Partilhar esta Página