D3POD Posted June 2, 2012 at 11:54 PM Report #459931 Posted June 2, 2012 at 11:54 PM Boas, hoje é o meu dia das dúvidas 😛 Tenho aqui uma lista de checkbox's que dependendo da selecção do utilizador é apresentado os dados referentes à escolha. Bem o que acontece é que se o utilizador clicar em duas ou mesmo em todas... o programa vai dar erro ou não vai funcionar. Gostaria de saber como posso evitar isso... Experimentei criar um tipo de condição, mas não me saiu bem... oram vejam o que fiz... deu logo erro 😛 If kuanzacheck.Checked & dolarcheck.Checked = True Then MessageBox.Show("Por favor escolha apenas uma moeda") ElseIf kuanzacheck.Checked & eurocheck.Checked = True Then MessageBox.Show("Por favor escolha apenas uma moeda") ElseIf eurocheck.Checked & dolarcheck.Checked = True Then MessageBox.Show("Por favor escolha apenas uma moeda") Como é que posso colocar isto a funcionar? Ainda experimentei criar botões e facilitar a coisa, mas não é o mesmo trabalho 😛 Cumprimentos
thoga31 Posted June 3, 2012 at 12:00 AM Report #459935 Posted June 3, 2012 at 12:00 AM Queres que só haja uma opção seleccionada de cada vez? Utiliza RadioButton em vez de CheckBox. Knowledge is free!
D3POD Posted June 3, 2012 at 12:01 AM Author Report #459937 Posted June 3, 2012 at 12:01 AM Edit1: Parece que descobri como fazer... Fui aos eventos, checkedchanged e coloquei o checkbox.enable = false Se conhecerem mais alguma maneira digam... 😉
thoga31 Posted June 3, 2012 at 12:02 AM Report #459938 Posted June 3, 2012 at 12:02 AM Esta?... Queres que só haja uma opção seleccionada de cada vez? Utiliza RadioButton em vez de CheckBox. Knowledge is free!
D3POD Posted June 3, 2012 at 01:14 AM Author Report #459947 Posted June 3, 2012 at 01:14 AM Não, devo ter respondido ao mesmo tempo que tu... Utilizei assim: Private Sub eurocheck_CheckedChanged(sender As Object, e As EventArgs) Handles eurocheck.CheckedChanged kuanzacheck.Enabled = False dolarcheck.Enabled = False End Sub Mas se calhar numa próxima fase vai ter mesmo que ser com radiobutton Obrigado
thoga31 Posted June 3, 2012 at 08:15 PM Report #460083 Posted June 3, 2012 at 08:15 PM Controlar dessa forma as CheckBoxes é uma dor de cabeça. Imagina que numa outra aplicação tens umas 20? E suspeito que esse teu código não funcione na perfeição, não estou a ver como voltas a colocar as checkboxes enabled para o utilizador mudar a sua opção de escolha... Knowledge is free!
D3POD Posted June 3, 2012 at 09:07 PM Author Report #460104 Posted June 3, 2012 at 09:07 PM Sim deve ser realmente uma dor de cabeça, devia colocar os radio buttons que ajudam nisso, mas como estou a por em hipotese de mais tarde puder escolher 2 checkbox's fica já preparado 😉 Para retornar para enable passo a explicar... depois de selecionar o tipo de moeda terão que clicar num botão... que abre um form. Nesse form tem o conversor onde colocam o valor e assim e tem um botão para regressar à escolha da moeda... ao clicarem nesse botão: form1.dolarcheck.enable = true 😛
thoga31 Posted June 3, 2012 at 09:12 PM Report #460110 Posted June 3, 2012 at 09:12 PM Deus! E se eu, utilizador do programa, me enganar? Tenho de fazer todo o processo para voltar a ter tudo enabled? Impensável! Knowledge is free!
D3POD Posted June 3, 2012 at 09:29 PM Author Report #460122 Posted June 3, 2012 at 09:29 PM Tudo o que? Se te enganares onde? Isto é uma coisa bem simples 😛
thoga31 Posted June 3, 2012 at 09:37 PM Report #460126 Posted June 3, 2012 at 09:37 PM Imagina que selecciono o CheckBox errado... acertei ao lado, p.e., estás-me a obrigar a percorrer o processo todo! Não podes pensar só na tua perspectiva de "é bem simples" - tens de pensar na perspectiva de utilizador, e nesta perspectiva tens de prever o máximo de erros possíveis de este cometer. Se não farás aplicações non-friendly para os utilizadores, e isso é menos de meio caminho andado para o fracasso. Knowledge is free!
D3POD Posted June 3, 2012 at 09:47 PM Author Report #460131 Posted June 3, 2012 at 09:47 PM (edited) Não, se te enganares tiras de lá o check e escolhes outra 😛 Está tudo bem pensado 😛 Isto é a pensar em utilização para o negócio da empresa, mas mais tarde vou colocar mais moedas e criar uma aplicação mais completa e quem sabe comercializa-la 😛 Eu percebo a tua dúvida... mas entretanto já fiz umas modificações depois de publicar esse código 😛 Ora vê o que fiz... Private Sub kuanzacheck_CheckedChanged(sender As Object, e As EventArgs) Handles kuanzacheck.CheckedChanged dolarcheck.Enabled = False eurocheck.Enabled = False If kuanzacheck.Checked = True Then Button1.Visible = True Button1.Text = "Kuanza" Else Button1.Visible = False dolarcheck.Enabled = True eurocheck.Enabled = True End If End Sub Possivelmente esta maneira de programar pode ser incorrecta pois pode tornar a aplicação lenta por ter muito código... mas isso melhor que vocês para me dizerem se estou a programar mal. A verdade é que lá me desenrasquei 😛 Edited June 4, 2012 at 01:02 PM by ribeiro55
thoga31 Posted June 3, 2012 at 09:53 PM Report #460132 Posted June 3, 2012 at 09:53 PM Ah, este código não nos era conhecido... Assim está melhor... xD Apesar dos RadioButton fazerem isso de forma muito mais eficiente. E não tens o código optimizado. Que tal isto? Private Sub kuanzacheck_CheckedChanged(sender As Object, e As EventArgs) Handles kuanzacheck.CheckedChanged Button1.Visible = kuanzacheck.Checked dolarcheck.Enabled = Not kuanzacheck.Checked eurocheck.Enabled = Not kuanzacheck.Checked If kuanzacheck.Checked Then Button1.Text = "Kuanza" End Sub Não é preciso fazer "kuanzacheck.Checked = True", pois isso é uma redundância... Uma condição é um booleano, e tu estás a ver se True = True... Ora, basta colocar directamente o valor booleano na condição e já está! Assim simplifica-se muito o código, vê só a beleza do que eu escrevi 😛 Knowledge is free!
D3POD Posted June 3, 2012 at 10:05 PM Author Report #460138 Posted June 3, 2012 at 10:05 PM Eu sei por isso é que também não estava a perceber onde é que tinhas dúvidas, só depois reparei que fiz a introdução do código depois. Assim está muito melhor... vou me divertir a mudar esses aspectos, pois acredito que deverão melhorar também a fluídez da aplicação, apesar de ser uma aplicação muito básica (para mim é uma dor de cabeça 😛 )
ricasss Posted June 4, 2012 at 04:15 PM Report #460338 Posted June 4, 2012 at 04:15 PM Pode ser básica mas o que tas a aprender agora a desenvolver essa aplicação básica vai te ajudar numa mais complexa
D3POD Posted June 4, 2012 at 05:07 PM Author Report #460359 Posted June 4, 2012 at 05:07 PM Sem dúvida, falta-me só agora terminar o problema com o cambio, que estou com problemas em relação ao guardar a taxa e dou como acabada... Para mim está funcional e prática 😉
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now