none
Adet girişi bazen oluyor bazen olmuyor çözemedim gitti RRS feed

  • Soru

  • Merhaba,

    Aşağıdaki gibi Adet Girişi Formundaki girişi Form3'e aktarıyorum ve timer ile formun kapandığını kontrol ediyorum. Eğer form kapandıysa metroButton2.PerformClick() yaptırıyorum.  metroButton2'de ise adet girişi formundan çektiğim sayı kadar for döngüsü ile listBox1'de seçtiğim ürünü listBox2'ye adet sayısı kadar eklemek istiyorum. Ama bazen çalışıyor bazen çalışmıyor. Hata da vermiyor. Bazen o adet kadar girdi yapıyor, bazen ise yapmıyor. Gözden kaçan bir şey var büyük ihtimalle de. Yardımcı olabilirseniz sevinirim.

    Aşağıda kodlar mevcut.

    Adet girişi formu:

    Adet girişi tamam butonu kodları:

    private void button11_Click(object sender, EventArgs e)
            {
                if (metroTextBox1.Text !="")
                {
                    Form3.form8CloseControl = true;
                    Form3.productCount = int.Parse(metroTextBox1.Text);
                    this.Close();
                }
                else
                    MessageBox.Show("Adeti boş bırakamazsınız");            
            }

    private void Form8_FormClosed(object sender, FormClosedEventArgs e)
            {
                Form3.form8CloseControl = true;
            }

    Form3'teki timer kontrolü kodları:

    private void timer1_Tick(object sender, EventArgs e)
            {
                if (form8CloseControl)
                {
                        metroButton2.PerformClick();
                        form8CloseControl = false;                
                }
            }

    metroButton2 kodları:

    private void metroButton2_Click(object sender, EventArgs e)
            {
                if (!form8CloseControl)
                {
                    productCount = 1;
                }
                if (listBox1.SelectedItem != null)
                {
                    GetAmount(listBox1.SelectedItem.ToString());
                    if (productCount!=0)
                    {
                        for (int i = 0; i < productCount; i++)
                        {
                            listBox2.Items.Add(listBox1.SelectedItem);
                        }
    
                        total += (amount * productCount);
                    }
                    else
                    {
                        productCount = 1;
                        total += (amount * productCount);
                        listBox2.Items.Add(listBox1.SelectedItem);
                    }
                    metroTextBox1.Text = total.ToString()+" TL";
    
                }
                else
                {
                    MessageBox.Show("Lütfen ürün seçiniz.", "HATA", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }
            }


    Merak et, Araştır, Geliştir. Harun Yılmaz

    23 Mart 2020 Pazartesi 19:04

Yanıtlar

Tüm Yanıtlar

  • selam uzaktan bağlanıp bakabilirim
    • Yanıt Olarak İşaretleyen Harun Yılmaz 24 Mart 2020 Salı 22:59
    23 Mart 2020 Pazartesi 19:58
  • "Aşağıdaki gibi Adet Girişi Formundaki girişi Form3'e aktarıyorum ve timer ile formun kapandığını kontrol ediyorum. Eğer form kapandıysa metroButton2.PerformClick() yaptırıyorum. "

    Niye ? .NET diğer geliştirme ortamlarından farklı olarak event'lere sahip.bir form için Closing,Closed vb. çeşitli şeyler varken niye timer :)

    NOT: Konuyu anlamadığım için sadece dikkati cezbeden yerden sorarak anlamaya çalışıyorum.

    23 Mart 2020 Pazartesi 21:18
  • selam uzaktan bağlanıp bakabilirim
    5'ten sonra müsaitseniz ve mailinizi bırakırsanız size mail atarım hocam

    Merak et, Araştır, Geliştir. Harun Yılmaz

    24 Mart 2020 Salı 10:40
  • "Aşağıdaki gibi Adet Girişi Formundaki girişi Form3'e aktarıyorum ve timer ile formun kapandığını kontrol ediyorum. Eğer form kapandıysa metroButton2.PerformClick() yaptırıyorum. "

    Niye ? .NET diğer geliştirme ortamlarından farklı olarak event'lere sahip.bir form için Closing,Closed vb. çeşitli şeyler varken niye timer :)

    NOT: Konuyu anlamadığım için sadece dikkati cezbeden yerden sorarak anlamaya çalışıyorum.

    Yukarıdaki kodlarda form8 closed eventiyle adet girişi formunu kapatırken true değer yolluyorum zaten hocam.

    Form3 teki timer ile de "Adet girişi formu"nun kapandığını kontrol ediyorum. Eğer kapalıysa butonun performClick ini çağırıyorum.  Form8 in kapanıp kapanmadığını başka nasıl bir şekilde kontrol ederim bilemedim. O yüzden Form3'teki timer ile Form8 in kapanmasını kontrol ediyorum. eğer kapalıysa Form8'den aldığı adedi butonda işlemlerini yapıp Form3'teki listBox1'de seçilen ürünü çektiğimiz adet kadar listBox2'ye ekliyorum. Bu şekilde.


    Merak et, Araştır, Geliştir. Harun Yılmaz

    24 Mart 2020 Salı 10:47
  • selam uzaktan bağlanıp bakabilirim

    5'ten sonra müsaitseniz ve mailinizi bırakırsanız size mail atarım hocam

    Merak et, Araştır, Geliştir. Harun Yılmaz

    selam  muratvuranok hotmail com
    24 Mart 2020 Salı 10:51
  • selam uzaktan bağlanıp bakabilirim

    5'ten sonra müsaitseniz ve mailinizi bırakırsanız size mail atarım hocam

    Merak et, Araştır, Geliştir. Harun Yılmaz

    selam  muratvuranok hotmail com
    mail attım hocam

    Merak et, Araştır, Geliştir. Harun Yılmaz

    24 Mart 2020 Salı 17:07
  •   DialogResult = DialogResult.OK;

    açılan formu kapamadan önce bu kodu ekle,

    diğer formunda ise, timer'ı iptal et

     Form8 goToCalculatorForm = new Form8();
    
                if (goToCalculatorForm.ShowDialog() == DialogResult.OK)
                {
                    metroButton2.PerformClick();
                }

    Kodlarını tetikle

    birde her işlem sonunda static değerlerini sıfırlamayı untma

    24 Mart 2020 Salı 18:55
  • Murat Vuranok, Uzaktan bağlanıp halletti. Teşekkürler :)

    Merak et, Araştır, Geliştir. Harun Yılmaz

    24 Mart 2020 Salı 23:00