• 08-02-2021, 17:09:26
    #1
    bu kodlar bir timer ın içinde yazılı 5sn bir internet kontrolü yapıyor. timer a girerken f2 formu açık. internet kopunca f2 formu kapanıyor. internet tekrar bağlanınca form açılıyor. sonra tekrar koparınca bu sefer artık form kapanmıyor. sabep ne olabilir
    if (NetworkInterface.GetIsNetworkAvailable() == true)
    {
    if (Application.OpenForms["youtube_1"] == null)
    {
    Form2 f2 = new Form2();
    f2.Name = "youtube_1";
    f2.Show();
    }
    }
    else
    {
    f2.Close();
    }
  • 08-02-2021, 17:10:17
    #2
    Bunu sürekli döngüye alsanız?
  • 08-02-2021, 17:11:26
    #3
    internet varken true değeri döndürüyor ama else komutu yok. Oraya yazarsanız f2.Close(); kapatıyor kendini ama döngü yeniden başlayınca aşağıdaki f2 komutu hızlıca geçiyor o yüzden sorun yaratabilir timer.
  • 08-02-2021, 17:11:49
    #4
    Şöyle deneyin,

    if (NetworkInterface.GetIsNetworkAvailable() == true)
    {
    if (Application.OpenForms["Form2"] == null)
    {
    Form2 f2 = new Form2();
    f2.Show();
    }
    }
    else
    {
    f2.Close();
    }
  • 08-02-2021, 17:28:42
    #5
    profweb adlı üyeden alıntı: mesajı görüntüle
    Şöyle deneyin,

    if (NetworkInterface.GetIsNetworkAvailable() == true)
    {
    if (Application.OpenForms["Form2"] == null)
    {
    Form2 f2 = new Form2();
    f2.Show();
    }
    }
    else
    {
    f2.Close();
    }
    yine aynı ilk sefer kapatıyor. internet gelince açıyor. 2. sefer internet gidince bu sefer kapatmıyor
  • 08-02-2021, 17:33:33
    #6
    gurdeniz adlı üyeden alıntı: mesajı görüntüle
    yine aynı ilk sefer kapatıyor. internet gelince açıyor. 2. sefer internet gidince bu sefer kapatmıyor
    f2.Close();

    yerine

    f2.Dispose();

    deneyin.
  • 08-02-2021, 18:52:39
    #7
    profweb adlı üyeden alıntı: mesajı görüntüle
    Şöyle deneyin,

    if (NetworkInterface.GetIsNetworkAvailable() == true)
    {
    if (Application.OpenForms["Form2"] == null)
    {
    Form2 f2 = new Form2();
    f2.Show();
    }
    }
    else
    {
    f2.Close();
    }
    profweb adlı üyeden alıntı: mesajı görüntüle
    f2.Close();

    yerine

    f2.Dispose();

    deneyin.
    yok yine olmadı form1 yüklenirken bazı kontrollerden sonra açtığım f2 form2 sini timer içinden kapatıyor. ancak timer içinden açtığım f2 form2 sini kapatmıyor. akla ziyan
  • 09-02-2021, 04:00:55
    #8
    gurdeniz adlı üyeden alıntı: mesajı görüntüle
    yok yine olmadı form1 yüklenirken bazı kontrollerden sonra açtığım f2 form2 sini timer içinden kapatıyor. ancak timer içinden açtığım f2 form2 sini kapatmıyor. akla ziyan
    f2.Close(); yerine aşağıdaki kodu dener misiniz?

    Application.OpenForms.Cast<Form>().Where(x => x is Form2 ).ToList().ForEach(x => x.Close());
  • 09-02-2021, 10:30:16
    #9
    pr1d3 adlı üyeden alıntı: mesajı görüntüle
    f2.Close(); yerine aşağıdaki kodu dener misiniz?

    Application.OpenForms.Cast<Form>().Where(x => x is Form2 ).ToList().ForEach(x => x.Close());
    Ben sorunu buldum timer içinde açtığım from u yine timer içinde kapatamıyorum. akışdiagramına bakıldığında form kapatma kısmı form açılmadan gerçekleşme ihtimali olan bir yer. ilk seferinde kapatıyor sebebi declaration kısmında form u atıyorum o sayede aşağıda timer içinde kapatabiliyorum. çözümü şöyle buldum açılan formun içinden internet kesildiğinde this.close(); şeklinde form2 yi kapatıyorum. internet geldiğinde anaform dan form2 yi açıyorum bu şekilde çalıştı teşekkürler cevaplarınız için