Buttony YES/NO w Windows Forms

0

Witam, napisał prosty program w konsoli, ma on zadawać kilka pytań by odgadnąć zwierzę o którym myśli użytkownik.

 
static void Main(string[] args)
        {
            string odpowiedz;
            Console.WriteLine("Witam w programie, na każde pytanie należy odpowiadać TAK lub NIE");
            Console.WriteLine("Czy zwierze o ktorym myslisz jest ssakiem?");
            odpowiedz = Console.ReadLine();
            if (odpowiedz == "TAK")
            {
                Console.WriteLine("Czy zwierze o ktorym myslisz żyje w morzu?");
                odpowiedz = Console.ReadLine();
                if (odpowiedz == "TAK") Console.WriteLine("To zwierze to wieloryb!");
                if (odpowiedz == "NIE") Console.WriteLine("To zwierze to panda!");
                odpowiedz = null;
            }
            if (odpowiedz == "NIE")
            {
                Console.WriteLine("Czy zwierze o ktorym myslisz jest gadem?");
                odpowiedz = Console.ReadLine();
                if (odpowiedz == "TAK") Console.WriteLine("To zwierze to krokodyl!");
                if (odpowiedz == "NIE") Console.WriteLine("To zwierze to salamandra!");
                odpowiedz = null;
            }
            Console.ReadKey();
        }

Chciałbym go przenieść do Windows Forms i tutaj natrafiłem na problem, chciałbym aby w okienku był tylko textbox i 2 buttony "TAK" oraz "NIE".
Logicznie miałoby wyglądać to tak

pytanie 1
czekanie na nacisniecie jednego z buttonow
pobranie wartosci z buttona
if wartosc buttona = TAK
{
pytanie 2
(...)
}

if wartosc buttona = NIE
{
pytanie 3
(...)
}

niestety nie wiem jak sobie poradzić z tym aby program czekał na naciśniecie buttona i dopiero wtedy przechodził do dalszej części kodu. Próbowałem ze zmienną typu bool lecz sprawdza się to tylko przy pierwszym pytaniu.
Czy w windows forms jest jakiś odpowiednik Console.ReadLine() który czeka na wciśnięcię buttona i zczytuje wartość?

0

W designerze dwa razy klikasz na button i tworzy się handler w kodzie. W nim wpisujesz co chcesz.

0

Tak, przy pierwszym pytaniu zadziała to świetnie, w zależności od tego co klikniemy przyciski przekierują nas do pytania 2 lub 3. Tylko, przy kolejnym pytaniu przyciski powinny przekierować nas w głąb kolejnych pytań a zamiast tego znów wrócą do pytania 2 lub 3 :/

dodaję kod z Windows Forms napisany logicznie jak miałoby to wyglądać

TextBox ustawiony na pytanie: "Czy zwierzę o którym myślisz jest ssakiem?"

   private void button1_Click(object sender, EventArgs e) //button TAK
        {
            textBox1.Text = "Czy to zwierze żyje w morzu?";
            if (button1_Click)
            {
                textBox1.Text = "Twoje zwierze to wieloryb";
            }
            if (button2_Click)
            {
                textBox1.Text = "Twoje zwierze to panda";
            }
    
        }

        private void button2_Click(object sender, EventArgs e) //button NIE
        {
            textBox1.Text = "Czy to zwierze jest gadem?";
            if (button1_Click)
            {
                textBox1.Text = "Twoje zwierze to krokodyl";
            }
            if (button2_Click)
            {
                textBox1.Text = "Twoje zwierze to salamandra";
            }
        } 

komunikaty które wyskakują to "Cannot convert method group 'button1_Click' to non-delegate type 'bool'. Did you intend to invoke the method?"

1
		var result = MessageBox.Show(
			"Czy zwierzę o którym myślisz żyje w morzu?",
			"Pytanie 1",
			MessageBoxButtons.YesNo
		);

		if (result == DialogResult.Yes)
			MessageBox.Show("To zwierzę to wieloryb!");
		else
			MessageBox.Show("To zwierzę to panda!");</CODE>
1

wartość pomocnicza i możesz robić milion pytań

....
 textBox1.Text = "Witam w programie, na każde pytanie należy odpowiadać TAK lub NIE. " + "Czy zwierze o ktorym myslisz jest ssakiem?";  
        }

 int pytanie = 0;        

        private void button1_Click(object sender, EventArgs e)
        {      //tak   
            if (pytanie == 2)
            {
                textBox1.Text = "To zwierze to krokodyl";             
            }

            if (pytanie == 1)
            {
                textBox1.Text = "To zwierze to wieloryb";
            }

            if (pytanie == 0)
            {
                textBox1.Text = "Czy zwierze o ktorym myslisz żyje w morzu?";
                pytanie = 1;
            }            
        }

        private void button2_Click(object sender, EventArgs e)
        { //nie

            if (pytanie == 2)
            {
                textBox1.Text = "To zwierze to salamandra!";
            }

            if (pytanie == 1)
            {
                textBox1.Text = "To zwierze to panda";               
            }
         
            if (pytanie == 0)
            {
                textBox1.Text = "Czy zwierze o ktorym myslisz jest gadem?";
                pytanie = 2;
            }
        }
0

Wielkie dzięki Piotr, właśnie o takie rozwiązanie mi chodziło :)
@Azarien, pomysł z messageboxami też dobry ale przy większej ilości pytań messageboxy byłyby irytujące.

Dziękuję za pomoc i pozdrawiam.

1 użytkowników online, w tym zalogowanych: 0, gości: 1