View Full Version : lista telefónica


estrafalhote
04-08-2007, 21:51
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.

http://img514.imageshack.us/img514/8835/semttulokn7.jpg

aqui está a parte grafica do programa.

HecKel
04-08-2007, 22:11
Julgo que o VB.Net já permite isto.

Experimenta isto:

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

txtnome.text = txtnome.text + "A"

HecKel

estrafalhote
05-08-2007, 11:40
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?

HecKel
05-08-2007, 15:09
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:

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 (http://msdn2.microsoft.com/en-us/library/05e63829%28VS.71%29.aspx).

HecKel

estrafalhote
05-08-2007, 15:25
obrigado outra vez

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

HecKel
05-08-2007, 15:30
É 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

estrafalhote
05-08-2007, 15:31
É 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.

alfinete
13-08-2007, 02:32
variáveis
________________________

' guarda o nome final
Dim nome As String = ""
' guarda o nome do botão em causa
Dim caracter As String


botões
__________________________________








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

'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



caracter =x

nome = nome & caracter

txtnome=nome



espero que ajude