lista telefónica

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.

semttulokn7.jpg


aqui está a parte grafica do programa.
 
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
 
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?
 
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
 
É 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
 
É 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

ok

obrigado na mesma pela ideia, vou investigar um pouco ver se encontro algo.
 
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
 
Back
Topo