Usuário com melhor resposta
Manipulação Button

Pergunta
-
Olá. eu estou aprendendo c#. me deparei com um problema e não estou conseguindo resolver.
eu tenho 3 botões - 1,2,3. eu quero criar um rotina que verifique se os botões foram clicados e quando os 3 botões forem clicados e desativados o sistema me emita uma mensagem de alerta. gostaria de receber uma alerta sempre que os 3 botões forem clicados independente da sequencia de cliques. exemplo: click button 2, 3,1 = "alerta" . click button 3,2,1 = " alerta" , click button 1,2,3 = "alerta" o que eu quero esclarecer é que eu preciso de um alerta quando os 3 botões forem clicados e desativados independentemente da sequencia de cliques. alguém por favor me ajude. isso é importante.
Respostas
-
Falha minha, altere
if (btn1 == true && btn2 == true && btn3 == false)
para
if (btn1 == true && btn2 == true && btn3 == true) // só para conhecimento, o código acima é o mesmo que // if (btn1 && btn2 && btn3)
Juliano Nunes - http://linkedin.com/in/julianonunes
Lembre-se de clicar em "Votar como útil" e "Marcar como Resposta" caso tenha respondido sua dúvida.
Remember to "Vote as Helpful" and "Mark as Answer" if your question has been answered.
- Marcado como Resposta Filipe B CastroModerator quarta-feira, 31 de janeiro de 2018 17:09
Todas as Respostas
-
Crie uma variável boolean para cada botão, daí no evento click de cada botão você altera o valor da respectiva variável para true. Além disso, você verificar no click de cada botão se as três variáveis estão com valor igual (==) a true e caso esteja, utilize o método MessageBox.Show para exibir o alerta.
Juliano Nunes - http://linkedin.com/in/julianonunes
Lembre-se de clicar em "Votar como útil" e "Marcar como Resposta" caso tenha respondido sua dúvida.
Remember to "Vote as Helpful" and "Mark as Answer" if your question has been answered.
-
-
Coloque aqui o que você conseguiu fazer e qual erro está acontecendo.
Juliano Nunes - http://linkedin.com/in/julianonunes
Lembre-se de clicar em "Votar como útil" e "Marcar como Resposta" caso tenha respondido sua dúvida.
Remember to "Vote as Helpful" and "Mark as Answer" if your question has been answered.
-
sei que está errado. eu preciso entender. se você puder por favor resolva para mim.
o codigo:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
bool btn1 = true;
bool btn2 = true;
bool btn3 = true;
if (btn1 == false) ;
if (btn2 == false) ;
if (btn3 == false) ;
MessageBox.Show("Ok. Os 3 botões foram clicados");
}
private void button3_Click(object sender, EventArgs e)
{
btn3.Enabled = false;
}
private void button2_Click(object sender, EventArgs e)
{
btn2.Enabled = false;
}
}
}
-
Coloque o código abaixo no nível da classe (após o public class ...):
bool btn1 = false; bool btn2 = false; bool btn3 = false;
Afinal você precisa que o valor seja mantido após cada evento.
Daí no início de cada código do evento click você altera apenar a variável bool referente aquele botão (button1 altera btn1 para true, button2 altera btn2 para true e por aí vai) e logo em seguida verifica se todos estão como true:
private void button1_Click(object sender, EventArgs e) { btn1 = true; Validar(); } private void Validar() { if (btn1 == true && btn2 == true && btn3 == false) { button1.Enabled = false; button2.Enabled = false; button3.Enabled = false; MessageBox.Show("Ok. Os 3 botões foram clicados"); } }
Agora é só replicar o código para os outros dois botões e testar.
Juliano Nunes - http://linkedin.com/in/julianonunes
Lembre-se de clicar em "Votar como útil" e "Marcar como Resposta" caso tenha respondido sua dúvida.
Remember to "Vote as Helpful" and "Mark as Answer" if your question has been answered.
-
Olá juliano. eu fiz. só que a mensagem está disparando no segundo clique. sendo em ordem. se eu clicar no botões 1,3,2 não disparar. mais basta clicar em ordem nos botões 1 e 2 que dispara antecipadamente. veja o código e me diga que está correto.
using System;
using System.Windows.Forms;
namespace Novo_Projeto
{
public partial class Form1 : Form
{
bool btn1 = false;
bool btn2 = false;
bool btn3 = false;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void button1_Click(object sender, EventArgs e)
{
btn1 = true;
Validar();
}
private void button2_Click(object sender, EventArgs e)
{
btn2 = true;
Validar();
}
private void button3_Click(object sender, EventArgs e)
{
btn3 = true;
Validar();
}
private void Validar()
{
if (btn1 == true && btn2 == true && btn3 == false)
{
button1.Enabled = false;
button2.Enabled = false;
button3.Enabled = false;
MessageBox.Show("Ok. Os 3 botões foram clicados");
}
}
}
}
-
Falha minha, altere
if (btn1 == true && btn2 == true && btn3 == false)
para
if (btn1 == true && btn2 == true && btn3 == true) // só para conhecimento, o código acima é o mesmo que // if (btn1 && btn2 && btn3)
Juliano Nunes - http://linkedin.com/in/julianonunes
Lembre-se de clicar em "Votar como útil" e "Marcar como Resposta" caso tenha respondido sua dúvida.
Remember to "Vote as Helpful" and "Mark as Answer" if your question has been answered.
- Marcado como Resposta Filipe B CastroModerator quarta-feira, 31 de janeiro de 2018 17:09
-
Olá Juliano. eu persegui com o projeto. eu tenho um pequeno problema.
o algoritmo funciona porem depois que foi clicado nos 3 botões e tenho um problema.
as informações ficam armazenadas nas variáveis e eu preciso limpar por que assim se eu acabou clicando novamente em um dos 3 botões o software acaba informando novamente a mensagem pois a informação ficou armazenada na variáveis. eu preciso limpar as variáveis tipo bool.
- Editado Pablo Pila quinta-feira, 1 de fevereiro de 2018 19:23