folder Tahribat.com Forumları
linefolder C#, Asp.Net, .Net Core
linefolder Form1'den Form2'ye Veri Yollayamıyorum [Çözüldü]



Form1'den Form2'ye Veri Yollayamıyorum [Çözüldü]

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    GodKlaus
    GodKlaus's avatar
    Kayıt Tarihi: 13/Ocak/2014
    Erkek

    iyi geceler. Bitirme projemle alakaı bir sorunum var.

    Form1'deki combobox'ta seçili öğeyi Form2'ye yollamam lazım.

    Basit olarak Form2'de Form1 objesi oluşturuyorum , obje.comboBox1.SelectedItem.ToString() yemiyor.

    Index olarak bakıyorum sürekli -1 geliyor ama kırmızı nokta ile baktığımda form1'de aslında veriler var lakin form2'ye geçerken veri kayboluyor.

     Bir türlü üstesinden gelemedim. internete de baktım ama nafile. Teamviewer var halledebilecek birisi var mıdır bu saatte ?

    GodKlaus tarafından 20/Eki/18 01:34 tarihinde düzenlenmiştir

    Telegram : @CuneytKuscu && Discord : Tyenuc#2679 | İstanbul Avr. Yazılım Mühendisi ve sonunda işim var (:
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Hunter
    j4x
    j4x's avatar
    Kayıt Tarihi: 16/Temmuz/2005
    Erkek

    Suan C# yüklü değil ama indexten gitmeni tavsiye ederim. -1 bişey seçilmediğinde oluyor. Form1deki object static ve public mi ki nasi form2 den kafana göre erisiyorsun? Form2 de bir Form1 daha oluşturursan o yeni bir Form1 olur yani programin başinda açilandan farkli dolayısıyla comboboxta bişey seçilmemiş ve index -1 olur. Dolayısıyla veri aktarmanin daha düzgün bir yolunu kullan Form2 constructorünü değiştirip açilişta passlayabilirsin indexi mesela yada public static "global" bir variable fln koyabilirsin kötü programcilik sıkıntı değil diyorsan. En basit yöntemleri söyledim.


    The king is bleeding.
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    GodKlaus
    GodKlaus's avatar
    Kayıt Tarihi: 13/Ocak/2014
    Erkek
    j4x bunu yazdı

    Suan C# yüklü değil ama indexten gitmeni tavsiye ederim. -1 bişey seçilmediğinde oluyor. Form1deki object static ve public mi ki nasi form2 den kafana göre erisiyorsun? Form2 de bir Form1 daha oluşturursan o yeni bir Form1 olur yani programin başinda açilandan farkli dolayısıyla comboboxta bişey seçilmemiş ve index -1 olur. Dolayısıyla veri aktarmanin daha düzgün bir yolunu kullan Form2 constructorünü değiştirip açilişta passlayabilirsin indexi mesela yada public static "global" bir variable fln koyabilirsin kötü programcilik sıkıntı değil diyorsan. En basit yöntemleri söyledim.

    kötü programcılık hiçbir şekilde problem değil.

    Bende aynı sorunu düşündüm. Form2'de form1 objesi oluşturuyorum ve bütün değerler default olarak geliyor. Bunun üzerinden gelemedim bende.

     

    Ayrıca combobox'ların ikiside public olarak tanımlandı.
    Form2'de Form1 frm1 = new Form1(); şeklinde tanımladım.
    frm1.combobox1.selectedItem.tostring(); diyince işte null geliyor. SelectedIndex diyince de -1 veriyor.

     

    Edit : Oldu bee. Sonunda hocamında yardımıyla başardım.

    Global değişken diye birşey varmış. Bunun için Globals adında bir class açtım ve içerisine public static <isim>; şeklinde değişkenker tanımladım.
    Globals bir class olduğu ve değişkenler de static türünde olduğu için hiçbir obje tanımlaması duymadan istediğim gibi eriştim.

     

    GodKlaus tarafından 20/Eki/18 01:25 tarihinde düzenlenmiştir

    Telegram : @CuneytKuscu && Discord : Tyenuc#2679 | İstanbul Avr. Yazılım Mühendisi ve sonunda işim var (:
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Hunter
    j4x
    j4x's avatar
    Kayıt Tarihi: 16/Temmuz/2005
    Erkek

    Hocam söyledim ya o şekilde yapamazsın. Açiliştaki Form1 farkli bir object, senin yarattığın Form1 farkli bir object. Sen ilkinde comboboxtan seçim yaptın. İkincisi gözükmüyor zaten default olarak -1 değeri var. Herşey olması gerektiği gibi yani. Sen dediğim iki yöntemden birini kullan yada setComboVal gibi bişey ekle Form2 ye form1 den form2 yi açarken o fonksiyonu da çağırıp comboboxun text değerini parametre olarak geç.


    The king is bleeding.
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Yazilimci
    Yazilimci's avatar
    Kayıt Tarihi: 01/Şubat/2014
    Erkek

    Sağ elinle sol kulağı tutmuşsun hocam

    @j4x in dediği gibi. Sen seçtiğindeki form farklı bir obje, Form2 de initialize olan farklı bir obje. new Form1() diyerek yeniden oluşturuyorsun. Adım adım yazayım;

    Form2 de global alanda public string selectedValue; diye bir değişken tanımla

    Form1 de Form2 i initialize ederken 

    Form2 form=new Form2();

    form.selectedValue=comboBox1.SelectedItem.ToString();

    form.Show();

    Akabinde açılan formda selectedValue değişkenini kullanabilirsin


    Titanyumun gücü adına!!!
Toplam Hit: 1813 Toplam Mesaj: 5
c# veri transferi