Jump to content

Teclado


D3POD
 Share

Recommended Posts

Boas pessoal, tenho aqui um problema...

Criei um teclado para a minha aplicação, mas entretanto surgiu a necessidade de um outro form ter o teclado...

Decidi então que o ideal era num form ter o teclado e depois chama-lo nos forms que precisa-se dele...

Até aqui acho que a ideia tem pernas para andar, o problema é que tenho o código assim:

textbox.text += "1"

ou seja se colocar o teclado num form à parte vou ter...

form2.textbox.text += "1"

Agora e se eu chamar este mesmo teclado para ele adicionar o "1" no form3?

Como posso fazer?

Existe maneira de colocar um condição que caso for chamado do form3 para o código passar para form3.textbox.text += "1" ?

Cumprimentos

Link to comment
Share on other sites

Porque você não passa o textbox que o teclado for utilizar como parâmetro para o teclado? Outra forma de fazer é fazer seu teclado disparar eventos e assinar estes eventos no form que for aberto.

Fernando Lage Bastos - MCP/MCTS/MCPD

Link to comment
Share on other sites

Crie uma propriedade na classe do teclado do tipo TextBox. Quando for mudar de form, coloque o textbox do novo form nesta propriedade.

Na classe teclado mude o código que está utilizando de forma a ele trabalhar com a propriedade que foi criada.

Fernando Lage Bastos - MCP/MCTS/MCPD

Link to comment
Share on other sites

O que deves fazer é abrir a form do teclado quando uma outra form necessitar dele. Imagina que a FormGira tem a TextBoxPorreira e queres que o teclado escreva nesta TextBox e não noutra.

Vais fazer algo como:

FormTeclado.Show;
FormTeclado.Definir(Me, Me.TextBoxPorreira)

Ou seja, mostras o teclado virtual e defines que ele vai escrever na FormFixe (como é ela mesma a chamar o teclado, deves usar "Me"), e a TextBox na qual vais escrever é a TextBoxPorreira.

Já na FormTeclado, onde tens o teu teclado, deverás incluir um método deste género:

Private Janela_Alvo As System.Windows.Forms  'salvo erro, é este o caminho do espaço de nomes...
Private TextBox_Alvo As TextBox

Public Sub Definir(ByRef Jan As System.Windows.Forms, ByRef tb As TextBox)
   Me.Janela_Alvo = Jan
   Me.TextBox_Alvo = tb
End Sub

Em cada botão de uma letra, deverás fazer isto:

Janela_Alvo.TextBox_Alvo.Text = "A" 'Para o caso da tecla A

Estás a entender a ideia?

Poder-se-á usar outros métodos, mas este parece-me o mais simples.

Cumprimentos 😉

Edited by thoga31

Knowledge is free!

Link to comment
Share on other sites

Se ainda es iniciado encalhar melhor copiares o design para os outros forms. no primeiro form clicas sobre o objecto que contem as "teclas" e vais para o evento click certo? logo se reparar nesse codigo que deve ser tipo isto:

Private Sub Label1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label1.Click

repara naquilo que diz handles Label1.Click

se colocares a frente de handles Label1.Click uma virgula e colocares a Label2.click o que te vai acontecer e que ao clicares na primeira label ou na segunda vai fazer aqulilo que colocas dentro desse private sub certo?

Depois no codigo colocas algo tipo isto: Textbox1.text+=sender.text sendo que o sender te vai devolver o texto que tens na label. Logo depois se copiares o design para os outros forms e se tiveres os mesmos nomes nas labels basta clicares numa das labels, depois estas no evento click certo, aqui colas o codigo que inseriste no form1 depois dos handles. e fazer o ...sender.text?

Fiz-me entender?

Ex: no primeiro form

Private Sub Label1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label1.Click, Label2.click

textbox1.text+=sender.text

End Sub

resumindo basta introduzires todas as "nomes" labels que tens como as letras,caractes que tens no teu teclado virtual e depois e so copy paste para o outro form.

no segundo form

Private Sub Label1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label1.Click, Label2.click

End Sub

Link to comment
Share on other sites

Boas se bem percebi então por exemplo crio dois forms... um combum botão e uma textbox e outro só com uma textbox...

No evento click desse botão coloco o que me disses-te?

Já estou a fazer uma grande confusão xD

Já andei para aqui a testar mas isto nem arranca 😛

Link to comment
Share on other sites

ja tens os buttons todos certo?

Clica 2 vezes sobre por exemplo a letra "A" para ires para o codigo. Ao chegares ao codigo teras algo do genero private sub..... handles (button que clicas-te) e depois colocas uma virgula e adicionas o (nome do button que contem a letra "B") e assim sucessivamente.

dentro do evento coloca uma msgbox com algum codigo so para veres o que acontece. se colocares dentro da msgbox(sender.text) ao clicares no A devolve-te A ao clicares no "B" devolve B.

e se colocares o nome de todos os buttons que ao clicares em qualquer button ele ira devolver o texto que se encontra nele.

Percebes-te?

Se nao conseguires entender diz-me os nomes dos 2 ou tres buttons para eu te tentar explicar via codigo.

Link to comment
Share on other sites

Desculpa lá, mas estou mesmo a apanhar papeis 😛

Então no A coloco o B separado por virgula... como o meu teclado é numerico logo no 1 punha o 1 e 2, no 2 metia o 2 e 3 etc... certo?

Mas depois no código do form coloco o que?

Só que eu quero é usar este teclado em vários forms... depende de qual está show...

Link to comment
Share on other sites

O método que eu te tinha dito deverá funcionar lindamente... só tens de ter em cada form um botão que abra a form de modo a que esta saiba quem é que precisa dele.

so para dizer que o teu metodo funciona. simplesmente quis dar outras opçoes ao D3POD.

Cumprimentos

Link to comment
Share on other sites

so para dizer que o teu metodo funciona. simplesmente quis dar outras opçoes ao D3POD.

Oi? Mas estamos a competir? Se assim é, agradeço o convite, but I'm out.

@D3POD, ambos os métodos são funcionais e ambos têm as suas vantagens e desvantagens. É tudo uma questão de ver se consegues percebê-las, e tentar aplicar os conhecimentos que te tentámos transmitir. Tenta ver qual é que é mais intuitivo para ti. Não tentes seguir todas as ondas que te aparecem pela frente, escolhe aquela que poderá ser a melhor para tu surfares 😉

Em qualquer dos casos, precisas de estudar um pouco melhor o que são os eventos dos controlos e o que é que fazem e quando ocorrem - ao longo deste tópico tenho notado algumas falhas nas bases de VB.NET. Por isso, aconselho-te a veres o seguinte:

- Eventos

- Handlers

- "Ligação" entre forms distintas, e como passar informação de umas para outras

Cumprimentos 😉

Edited by thoga31

Knowledge is free!

Link to comment
Share on other sites

Oi? Mas estamos a competir? Se assim é, agradeço o convite, but I'm out.

@D3POD, ambos os métodos são funcionais e ambos têm as suas vantagens e desvantagens. É tudo uma questão de ver se consegues percebê-las, e tentar aplicar os conhecimentos que te tentámos transmitir. Tenta ver qual é que é mais intuitivo para ti. Não tentes seguir todas as ondas que te aparecem pela frente, escolhe aquela que poderá ser a melhor para tu surfares 😉

Em qualquer dos casos, precisas de estudar um pouco melhor o que são os eventos dos controlos e o que é que fazem e quando ocorrem - ao longo deste tópico tenho notado algumas falhas nas bases de VB.NET. Por isso, aconselho-te a veres o seguinte:

- Eventos

- Handlers

- "Ligação" entre forms distintas, e como passar informação de umas para outras

Cumprimentos 😉

Thoga31 nao estamos a competir.

Penso que interpretas-te mal as minhas palavras.

De qualquer das formas peço desculpa por alguma coisa.

cumprimentos

Desculpa lá, mas estou mesmo a apanhar papeis 😛

Então no A coloco o B separado por virgula... como o meu teclado é numerico logo no 1 punha o 1 e 2, no 2 metia o 2 e 3 etc... certo?

Mas depois no código do form coloco o que?

Só que eu quero é usar este teclado em vários forms... depende de qual está show...

o teu 1,2,3 e apenas o texto dos teus buttons. se clicares somente uma vez no button vais ver que te aparecem as propriadades do mesmo certo? Ai tens que ver qual e o nome da propriedade name. e e esse o nome que deves colocar.

Fiz-me entender?

Cumprimentos

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.