2013-05-14 14 views
6

Tworzę program, który powinien być kontynuowany, jeśli zostaną podane 2 warunki. Pierwszy 2 pola tekstowe mają to samo słowo i kliknięto przycisk, który otwiera nowy formularz. Widzisz, próbuję zrobić formularz rejestracyjny;) Teraz mam wydarzenie dla przycisku "kompletny".C# Sprawdzanie, czy został kliknięty przycisk

private void button2_Click(object sender, EventArgs e) 
    { 
     if (textBox2.Text == textBox3.Text && ???) { 

      StreamWriter myWriter = File.CreateText(@"c:\Program Files\text.txt"); 
      myWriter.WriteLine(textBox1.Text); 
      myWriter.WriteLine(textBox2.Text); 

Mój problem polega na tym, że nie mogę znaleźć metody, która daje coś takiego jak button1.Clicked lub coś podobnego.

Mam nadzieję, że ktoś może mi pomóc tutaj ..

Odpowiedz

21

Click jest zdarzeniem, które wyzwala natychmiast po zwolnieniu przycisku myszy. Jeśli więc chcesz sprawdzić w module obsługi dla button2.Click, jeśli wcześniej kliknięto opcję button1, wszystko, co możesz zrobić, to mieć program obsługi dla button1.Click, który ustawia flagę bool na twoją własność.

private bool button1WasClicked = false; 

private void button1_Click(object sender, EventArgs e) 
{ 
    button1WasClicked = true; 
} 

private void button2_Click(object sender, EventArgs e) 
{ 
    if (textBox2.Text == textBox3.Text && button1WasClicked) 
    { 
     StreamWriter myWriter = File.CreateText(@"c:\Program Files\text.txt"); 
     myWriter.WriteLine(textBox1.Text); 
     myWriter.WriteLine(textBox2.Text); 
     button1WasClicked = false; 
    } 
} 
+5

Nie zapomnij zresetować flagi po jej sprawdzeniu. W przeciwnym razie zadziała tylko raz. –

+0

Moja zła. +1 i edytowane. –

+0

Gdzie muszę wypełnić prywatny przycisk bool1WasClicked = false; ? – ItsLuckies

0

button1, button2 i button3 mają takie same nawet obsługi

private void button1_Click(Object sender, EventArgs e) 
    { 
     Button btnSender = (Button)sender; 
     if (btnSender == button1 || btnSender == button2) 
     { 
      //some code here 
     } 
     else if (btnSender == button3) 
      //some code here 
    } 
+0

Edytuj odpowiedź i popraw formatowanie kodu – rtruszk

0

jestem bardzo nowy na tej stronie. Jestem studentem studiów licencjackich, wykonuję aplikację licencjacką. Robię prosty program w Visual Studio przy użyciu C# i natknąłem się na ten sam problem, jak sprawdzić, czy przycisk jest kliknięty? Chciałem to zrobić,

if(-button1 is clicked-) then 
{ 
this should happen; 
} 
if(-button2 is clicked-) then 
{ 
this should happen; 
} 

Nie wiedziałam co robić, więc próbowałem poszukiwania rozwiązania w internecie. Mam wiele rozwiązań, które mi nie pomogły. Tak, próbowałem coś na własną rękę i zrobił to,

int i; 
private void button1_Click(object sender, EventArgs e) 
     { 
      i = 1; 
      label3.Text = "Principle"; 
      label4.Text = "Rate"; 
      label5.Text = "Time"; 
      label6.Text = "Simple Interest"; 
     } 


private void button2_Click(object sender, EventArgs e) 
     { 
      i = 2; 
      label3.Text = "SI"; 
      label4.Text = "Rate"; 
      label5.Text = "Time"; 
      label6.Text = "Principle"; 
     } 
private void button5_Click(object sender, EventArgs e) 
     { 

      try 
      { 
       if (i == 1) 
       { 
        si = (Convert.ToInt32(textBox1.Text) * Convert.ToInt32(textBox2.Text) * Convert.ToInt32(textBox3.Text))/100; 
        textBox4.Text = Convert.ToString(si); 
       } 
       if (i == 2) 
       { 
        p = (Convert.ToInt32(textBox1.Text) * 100)/(Convert.ToInt32(textBox2.Text) * Convert.ToInt32(textBox3.Text)); 
        textBox4.Text = Convert.ToString(p); 
       } 

oświadczyłem zmienną „i” i przypisano go z różnymi wartościami w różnych przycisków i sprawdził wartość I w razie funkcji. Zadziałało. Podaj swoje sugestie, jeśli takie istnieją. Dziękuję Ci.

Powiązane problemy